键值存储数据库——Redis

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 键值存储数据库——Redis,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

前言

     NoSQL(Not Only SQL)全新的数据库理念,泛指非关系型数据库。这类的数据库在互联网发展的新需求下比关系型数据库有着更高的效率。NoSQL数据库主要分为四类:①键值存储数据库②列存储数据库③文档型数据库④图形数据库。下面让我们一起来看看键值存储数据库中比较热门的Redis.
图一

概述

     Redis是用C语言开发的一个开源的高性能键值对数据库。提供5种键值数据类型来应对不通场景下的存储需求。目前Redis的主要应用场景有:①数据缓存②在线列表③任务队列④访问记录⑤数据过期处理⑥session分离。下面是我对Redis数据库的更多描述:

图二

类型

String

     字符串是Redis最为基础的类型,字符串的Value最多可以容纳的数据长度是512M。

     赋值: set key value
     取值: get key
     删除: del key
     自增: incr key
     自减:decr key

List

     List类型是按照插入顺序排序的字符串链表。可以在头部(Left)尾部(Right)添加新元素。

     左插入: lpush key values[value1 value2 …]
     右插入: rpush key values[value1 value2 …]

     查看: lrange key start end

     左弹出: lpop key
     右弹出: rpop key

     查询所有Key: llen key

Set

     Set类型可以没有排序的字符集合,与List类型的区别是Set集合中不允许出现重复的元素。

     添加元素: sadd key values[value1、value2 …]
     删除元素: srem key values[value1、value2 …]

     查询所有Key: smembers key

     判断Key是否存在: sismember key member

     集合差集: sdiff key1 key2 …
     集合交集: sinter key1 key2 …
     集合并集: sunion key1 key2 …

SortedSet

     SortedSet与Set相似,它们都是字符串的集合,主要差别是SortedSet中的每一个成员都会有一个分数(Score)与之关联。

     添加元素: zadd key score member score2 member2 …
     删除元素: zrem key member [member…]

     查询所有Key:zcard key
     查询指定Key分数:zscore key member
     根据分数范围查询key:zrange key start end [withsores]
     根据分数顺序查询:zrevrange key start stop [withsores]

     根据分数范围删除:zremrangebyscore key min max
     根据分数顺序删除:zremrangebyrank key start stop

Hash

     Hash类型可以当做具有String Key 和 String Value 的map容器。非常适合存储值对象信息,如:UserId、UserName、Age 等。每一个Hash可以存储4294967295个键值对。

     赋值: hset key field value
     赋值: hmset key field value [field2 value2 …]

     取值: hget key field
     取值: hmget key fields
     取值: hgetall key

     删除: hdel key field [field …]
     删除: del key

     加减: hincr key field increment

     指定key的field是否存在: hexists key field
     指定key的field的个数: hlen key

     查询所有key: hkeys key
     查询所有value: hvals key

订阅发布

     订阅频道:subscribe channel
     指定频道发布消息:publish channel content

持久化

     Redis的高性能是由于其将所有数据存储在了内存中,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。
     Redis支持两种方式的持久化,一种是RDB,一种是AOF。可以单独使用一种也可以结合使用。

RDB

     该机制是指在指定时间间隔内将内存中的数据集快照写入磁盘。

AOF

     该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库。

小结

     在高性能、高并发、高可用的需求下,我们需要不断升级设计方案与数据处理来应对不同的开发需要。在这样一条路上会遇到更多新的设计,荣幸与您分享~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144256.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!