Redis 之数据结构

Redis 之数据结构

字符串(String)

  1. 字符串是redis最简单的数据类型。字符串是二进制安全的,所以Redis字符串能包含任意类型的数据。 例如:JPGE图片、序列化Ruby对象。
  2. 一个字符串最多能存储512M字节内容 ·利用INCR命令簇(incr decr incrby)来把字符串当做院子计数器。
  3. 使用Append命令在字符串后添加内容。 ·使用GETRANGE和SETRANGE命令来范围访问(时间复杂度 0(N) ,0开始,-1末位。
  4. 在小空间里编码大量数据,或者使用getbit和setbit 创建bloom过滤器

set stringtestkey “hello world hello redis” #OK

getrange stringtestkey 0 1 #”he”

getrange stringtestkey -5 -1 #”redis”

getrange stringtestkey 10 100 #”hello redis”

setrange stringtestkey 23 “test” #”hello world hello redistest”

setrange keybu0 2 “test” #”\x00\x00test”

列表(List)

  1. Redis列表是简单的字符串列表,按插入顺序排序。可以从列表头部(左边)或者尾部(右边)添加元素。
  2. lpush在头部插入元素,rpush在尾部插入元素
  3. 一个列表最多可以包含2^(32-1)个元素,访问头部或者尾部很快,访问表中间元素很慢
  4. Redis 列表可以处理一些有趣的事,例如:
    • 时间线 lpush存入,lrange取出最近插入条目
    • lpush ltrim创建和维护一个永远不会超过指定元素数量数目的列表,同时记住最后N个元素
    • 待添加

集合(Sets)

  1. redis 集合是一个无序字符串集合。0(1)时间复杂度完成添加删除测试元素是否存在
  2. Redis集合有唯一性特性,多次添加先相同元素最终只会存在一个元素 3.
  3. 一个Redis列表十分有趣的事是,它们支持一些服务端的命令从现有的集合出发去进行集合运算。 所以你可以在很短的时间内完成合并(union),求交(intersection), 找出不同元素的操作。
  4. 一个集合最多可以包含2^(32-1)个元素(4294967295,每个集合超过40亿个元素)。
  5. 你可以用Redis集合做很多有趣的事,例如你可以:
    • 用集合跟踪一个独特的事。想要知道所有访问某个博客文章的独立IP?只要每次都用SADD来处理一个页面访问。那么你可以肯定重复的IP是不会插入的。
    • Redis集合能很好的表示关系。你可以创建一个tagging系统,然后用集合来代表单个tag。接下来你可以用SADD命令把所有拥有tag的对象的所有ID添加进集合,这样来表示这个特定的tag。如果你想要同时有3个不同tag的所有对象的所有ID,那么你需要使用SINTER.
    • 使用SPOP或者SRANDMEMBER命令随机地获取元素。

哈希(Hash)

有序集合(Sorted Sets)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值