Redis五种数据结构

对redis来说,所有的key(键)都是字符串,所谓的5种数据结构是指针对value而言

1、Redis五种数据结构如下:

数据结构类型说明使用场景常用方法其他链接
String字符串类型

1、redis中最基本的数据类型,一个key对应一个value。

2、是二进制安全的,意思是 redis 的 string 可以包含任何数据。如数字,字符串,jpg图片或者序列化的对象。

1.缓存: 经典使用场景,把常用信息,字符串,图片或者视频等信息放到redis中,redis作为缓存层,mysql做持久化层,降低mysql的读写压力。

2.计数器:redis是单线程模型,一个命令执行完才会执行下一个,同时数据可以一步落地到其他的数据源。

3.session:常见方案spring session + redis实现session共享,

get 、 set 、 del 、 incr、 decr 

HashTables (哈希)

是一个Mapmap,指值本身又是一种键值对结构,如 value={{field1,value1},......fieldN,valueN}}1.缓存: 能直观,相比string更节省空间的维护缓存信息,如用户信息,视频信息等。

所有hash的命令都是h开头的:

hget  、hset 、  hdel 等

 
LinkedLists(链表)List 说白了就是链表(redis 使用双端链表实现的 List),是有序的,value可以重复,可以通过下标取出对应的value值,左右两边都能进行插入和删除数据。1.timeline:例如微博的时间轴,有人发布微博,用lpush加入时间轴,展示新的列表信息。

使用列表的技巧

  • lpush+lpop=Stack(栈)
  • lpush+rpop=Queue(队列)
  • lpush+ltrim=Capped Collection(有限集合)
  • lpush+brpop=Message Queue(消息队列)
 
Sets(集合)

用来保存多个字符串的元素,但和列表不同的是集合中

1. 不允许有重复的元素

2.集合中的元素是无序的,不能通过索引下标获取元素

3.支持集合间的操作,可以取多个集合取交集、并集、差集。

1.标签(tag),给用户添加标签,或者用户给消息添加标签,这样有同一标签或者类似标签的可以给推荐关注的事或者关注的人。

2.点赞,或点踩,收藏等,可以放到set中实现

命令都是以s开头的:

sset 、srem、scard、smembers、sismember

1、set类型的应用场景 —— Redis实战经验

Zset  有序集合

1.Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。

2.不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

3.有序集合的成员是唯一的,但分数(score)却可以重复。

1.排行榜:有序集合经典使用场景。例如小说视频等网站需要对用户上传的小说视频做排行榜,榜单可以按照用户关注数,更新时间,字数等打分,做排行。

有序集合的命令都是 以  z  开头:

zadd 、 zrange、 zscore

1、Redis 有序集合(sorted set)

2、使用Redis有序集合实现投票排行榜系统

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值