JSON
、
XML
甚至是二进制的图片等数据,但是最大值不能超过512MB。
1.1 内部编码
-
int:8个字节的长整型。
-
embstr:小于等于39个字节的字符串。
-
raw:大于39个字节的字符串。
1.2 使用场景
1.2.1 缓存
1.2.2 计数
incr key
,
incr
命令对值做自增操作,返回结果分为以下三种情况:
-
值不是整数,返回错误
-
值是整数,返回自增后的结果
-
key不存在,默认键为
0
,返回1
1.2.3 共享Session
1.2.4 限速
2.1 内部编码
-
ziplist(压缩列表):当哈希类型元素个数小于
hash-max-ziplist-entries
配置(默认512个)同时所有值都小于hash-max-ziplist-value
配置(默认64字节)时使用。ziplist使用更加紧凑的结构实现多个元素的连续存储,所以比hashtable更加节省内存。 -
hashtable(哈希表):当ziplist不能满足要求时,会使用hashtable。
2.2 使用场景
hset user:1 name Java旅途 age 18
2^32-1
个元素,列表的两端都可以插入和弹出元素。
3.1 内部编码
-
ziplist(压缩列表):当哈希类型元素个数小于
list-max-ziplist-entries
配置(默认512个)同时所有值都小于list-max-ziplist-value
配置(默认64字节)时使用。ziplist使用更加紧凑的结构实现多个元素的连续存储,所以比hashtable更加节省内存。 -
linkedlist(链表):当ziplist不能满足要求时,会使用linkedlist。
3.2 使用场景
3.2.1 消息队列
lpush
+
rpop
或者
rpush
+
lpop
实现消息队列。除此之外,redis支持阻塞操作,在弹出元素的时候使用阻塞命令来实现阻塞队列。
3.2.2 栈
lpush
+
lpop
或者
rpush
+
rpop
实现栈。
3.2.3 文章列表
lrange key 0 9
分页获取文章列表
2^32-1
个元素。
4.1 内部编码
-
intset(整数集合):当集合中的元素都是整数且元素个数小于
set-max-intset-entries
配置(默认512个)时,redis会选用intset来作为集合的内部实现,从而减少内存的使用。 -
hashtable(哈希表):当intset不能满足要求时,会使用hashtable。
4.2 使用场景
4.2.1 用户标签
-
给用户打标签
sadd user:1:tags tag1 tag2
-
给标签添加用户
sadd tag1:users user:1
sadd tag2:users user:1
sinter user:1:tags user:2:tags
4.2.2 抽奖功能
-
随机获取count个元素,集合元素个数不变
srandmember key [count]
-
随机弹出count个元素,元素从集合弹出,集合元素个数改变
spop key [count]
spop
,反之使用
srandmember
。
2^32-1
个元素。
5.1 内部编码
-
ziplist(压缩列表):当有序集合的元素个数小于
list-max-ziplist-entries
配置(默认128个)同时所有值都小于
list-max-ziplist-value
配置(默认64字节)时使用。ziplist使用更加紧凑的结构实现多个元素的连续存储,更加节省内存。
-
skiplist(跳跃表):当不满足ziplist的要求时,会使用skiplist。
5.2 使用场景
5.2.1 排行榜
zadd user:article 0 a
1
zincrby user:article 1 a
zrevrangebyscore user:article 0 2
zrangebyscore user:article 0 2
5.2.2 延迟消息队列
- END -
最近整理一份面试资料《Java技术栈学习手册》,覆盖了Java技术、面试题精选、Spring全家桶、Nginx、SSM、微服务、数据库、数据结构、架构等等。 获取方式:点“ 在看,关注公众号 Java后端 并回复 777 领取,更多内容陆续奉上。 推 荐 阅 读 1. 好用:强大的 IDEA 代码生成器 2. 头条终面:写个消息中间件 3. 我是一个线程池 4. Spring Boot 接入 GitHub 第三方登录 5. 程序员需知的 58 个网站
喜欢文章,点个 在看
本文分享自微信公众号 - Java后端(web_resource)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。