Redis 一些题目
数据结构
基本类型
string 字符串
list 列表
set 集合
zset 有序集合
hash 哈希表
- String:如果存储数字的话,是用int类型的编码;如果存储非数字,小于等于39字节的字符串,是embstr;大于39个字节,则是raw编码。
- List:如果列表的元素个数小于512个,列表每个元素的值都小于64字节(默认),使用ziplist编码,否则使用linkedlist编码
- Hash:哈希类型元素个数小于512个,所有值小于64字节的话,使用ziplist编码,否则使用hashtable编码。
- Set:如果集合中的元素都是整数且元素个数小于512个,使用intset编码,否则使用hashtable编码。
- Zset:当有序集合的元素个数小于128个,每个元素的值小于64字节时,使用ziplist编码,否则使用skiplist(跳跃表)编码
特殊类型
bitmap 位图
hyperloglog 基数统计
geospatial 地理位置
stream 消息队列
优点
- 在内存操作一切速度快
- 单线程, 没有上下文的切换
缺点
- 因为单线程, 不能利用cpu多核性能
持久化
-
RDB
- 记录快照的方式
- fork子进程-> 定时并且到达触发修改次数写磁盘->dump.rdb
- 记录的是二进制数据,快照恢复舒服快,可能丢失数据
-
AOF
- 记录过程的方式
- 客户端修改命令->每秒/每个命令/不同步->appendonly.aof
- 记录的是redis命令,命令过多恢复比较慢,恢复完整性上比RDB高
redis4.0+ 使用混合模式通过,RDB全量持久化内存数据,AOF增量持久化修改命令,以保证数据的完整性
Redis 一些题目
https://maocat.cc/2020/04/14/中间件/Redis/一些题目/