首页 > Redis > redis数据类型及应用场景介绍

redis数据类型及应用场景介绍

2016年1月25日
分类: Redis 标签:
发表评论 阅读评论
  1. string
    • 这是Redis最基本的数据类型。string是二进制安全的,意味着可以存储各种类型的数据,比如一张JEPG图片或者一个序列化过的Ruby对象。
    • 最普通的KV缓存操作:set str_key str_value, get str_key
    • 原子计数器:incr str_key, decr str_key, incrby str_key 1
    • 获取子串:getrange str_key 0 3
  2. list
    • 双端有序队列,可方便地在头部和尾部插入或删除数据
    • 消息队列:rpush list_key member, lpop/blpop list_key. 可用于线程、进程间通信。
    • 可信消息队列:list用作消息队列,消息获取者取数据过程中若发生异常(崩溃、网络断开等),会导致数据已pop出队列而获取者并未得到数据。因此有必要将取出的消息先放在一个“正在处理”队列中,获取中处理完成后再从“正在处理”队列中将消息删除。rpoplpush msgQueue msgProcessingQueue一个命令即可完成出队和入队操作,消息处理完毕使用lrem msgProcessingQueue 0 msg将消息彻底删除。
    • 时间轴(Timeline):通过lpush不断地将事件插入队列,通过lrange取出最近发生的几个事件。
    • 循环(Circular)队列:将N个数据lpush入队列CircularList,然后通过rpoplpush CircularList CircularList即可循环访问此队列中的数据。
    • 定长最新队列:将数据lpush进队列,并通过ltrim 0 MaxLen-1保留指定索引范围内的元素,可以使得队列长度不超过设定的值MaxLen,此时队列中始终保存这最新的MaxLen个数据。
  3. set
    • 无序不重复的string集合,向其中添加、删除、查找元素的时间效率均为常量级O(1)。
    • 数据去重:sadd set_key member
    • 集合交并补运算:sinter skey1 …, sunion skey1 …, sdiff skey1 …
  4. zset
    • 带有分值(score)的set,有了分值就可以对set进行排序。zset同样是key不重复,但是和key关联的score却可以相同。
    • 计数:zadd sset_key score member, zincrby sset_key increment member, zscore sset_key member
    • Top N:zrange/zrevrange sset_key 0 N-1 [withscores]
    • 范围查询:zrangebyscore sset_key min_score max_score [withscores] [limit offset count]
    • 排名查询:zrank sset_key member
  5. hash
    • string键值对映射,其实称作键-域-值三元组更合适,因为每个hash key中可以存储多个不同的域,每个域里存储对应的数据。这就适合用来存储对象,对象包含多个属性,各属性都有自己的值。
    • 映射合集:hset hkey field1 value1, hget hkey filed1, hmset hkey2 field1 value2 field2 valuex
    • 计数:hincrby hkey filed increment
您可能需要这些【参考资料】:
零一积流|IT参考 原创文章,转载请注明出处: http://www.it-refer.com/2016/01/25/redis-data-structure-and-usage-string-list-set-hash


  1. 本文目前尚无任何评论.
您必须在 登录 后才能发布评论.