Redis数据类型简介

redis实际上是一个数据结构服务器,支持不同类型的值。传统的key-value存储中,String类型key关联String类型值;在redis中value的类型不局限于简单的String类型,还可以是一些复杂的数据结构,下面是redis支持的数据结构:

  • Binary-safe strings
  • Lists:String类型元素的集合,按照插入顺序排序,基本上是链表
  • Sets: 唯一的,无序的String类型元素的集合
  • Sorted sets: 和 sets类似,但是每个元素关联一个浮点类型的分数。元素通过分数来进行排序的,可以根据分数进行范围查询
  • Hashes: 类似python里面的hashes,key value都是字符串
  • Bit arrays:
  • HyperLogLogs:通过概率的方式估计set的基数
  • Streams:

Redis Keys
redis keys 可以是任何二进制序列,如字符串"foo" 或者jpeg文件内容.空字符串也是一个有效的key.
redis key的几个规则:

  • keys 不要太长,因为内存 和 key查找比较的消耗;可以用hash例如(SHA1)方式.
  • keys 也不要太短,要保证易读性,如"u1000flw" ,“user:1000:followers” 后面易读 也没增加多少消耗
  • 试着用一些schema;如"object-type:id" “user:1000”. '.'和‘-’常用于多个单词的字段,如"comment : 1234:reply.to",“comment : 1234:reply-to”.
  • 最大允许key的大小是512MB.

Redis Strings
基本操作:

> set mykey somevalue
OK
> get mykey
"somevalue"
> set mykey newval nx
(nil)
>set mykey newval xx
OK
> set counter 100
OK
>incr counter
(integer) 101
>incrby counter 50
(integer) 151
  • value 不能大于512MB
  • getset
  • mset
  • mget
  • exists
  • del
  • type

Redis expires: keys with limited time to live
秒单位 可以是毫秒PEXPIRE PTTL

> set key some-value
OK
> expire key 5
(integer) 1
> get key 
"some-value"
> get key (after some time)
(nil)
> set key 100 ex 10
OK
> ttl key
(integer) 9

Redis Lists
Redis lists are implemented via Linked Lists.
基本操作:

> rpush mylist A
(integer) 1
>rpush mylist B
(integer) 2
> lrange mylist 0 -1
1) "A"
2) "B"
>rpop mylist
"B"
>rpop mylist
"A"
>rpop mylist
(nil)

Lists 常见使用场景

  • 记住社交用户最近的更新
  • 进程间的交互,consumer-producer
    假设你的首页展示最近发布的图片,你想要加速访问:
    1.每次用户上传图片的时候,lpush ids into a list.
    2.当用户访问首页的时候使用lrange 0 9

Capped lists:
许多场景下我们只想用lists取存最新的items;
LTRIM command 可以只记住最近的N个丢弃老的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值