序号 | 标题 |
---|---|
01 | Redis入门到超神 - 01 Redis介绍与安装 |
02 | Redis入门到超神 - 02 Redis为什么默认16个数据库 |
03 | Redis入门到超神 - 03 redis.conf配置文件详解 |
04 | Redis入门到超神 - 04 redis的5种数据结构 |
Redis 五种数据结构
关于命令的具体用法推荐网站: Redis命令教程中文版
String 字符串
String 类型是 redis 中最基本的数据类型,一个 key 对应一个 value 。并且 String 类型是二进制安全的,意思是 redis 的 String 可以包含任何数据。例如数字,字符串,jpg图片或者序列化的对象。
常用命令:get ,set ,del ,incr ,decr,getset,incrby 等。
应用场景:
- 热点数据,常用数据,结果不经常变动数据缓存;
- 计数器,用户点赞数,pv/uv等。
- session,比如 spring session + redis 实现 session 共享。
List 链表
List 即链表(redis 使用双端链表实现的 List),它是有序的,value可以重复,可以通过下标取出对应的value值,左右两边都能进行插入和删除数据。List 的另一个应用就是消息队列,可以利用 List 的 PUSH 操作,将任务存在 List 中,然后工作线程再用 POP 操作将任务取出进行执行。
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
常用命令:linsert,llen,lpop,lpush,lrem,rpop,rpush等。
应用场景:
- 微博timeline
- 消息队列
Hash 哈希
Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。它是一个Mapmap,指值本身又是一种键值对结构,如 value={{field1,value1},…fieldN,valueN}}。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
常用命令:hexists,hget,hgetall,hdel,hlen,hkeys等等。
应用场景:缓存用户信息,等。
Set 集合
集合类型用来保存多个字符串的元素,集合中没有重复的元素;集合中的元素是无序的;不能通过索引下标获取元素;支持集合间的操作,例如多个集合取交集、并集、差集。
Redis 中 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
常用命令:sadd 、srem、scard、smembers、sismember等。
应用场景:共同好友,共同爱好,用户打标签等。
zset 有序集合
和Sets相比,Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列。有序集合中的元素不可以重复,但是score 分数 可以重复。
常用命令:zadd,zcard, zrange,zscore,zrange等。
应用场景:各种排行榜,例如点赞数排行,关注数排行,等等。
文章来源: javalib.blog.csdn.net,作者:陈皮的JavaLib,版权归原作者所有,如需转载,请联系作者。
原文链接:javalib.blog.csdn.net/article/details/113815779