Redis知识点总结
基本数据类型
1、string,kv结构,功能:添加、查询、+1、-1、获取长度、是否存在。
2、list,双链表,功能:左/右添加、左/右删除、获取长度、范围查询。
3、hash,HashMap(Java),功能:添加、查询、是否存在、获取所有、获取所有keys、获取所有vals。
4、set,HashSet(Java),功能:添加、删除、查看所有、是否存在、查看个数、求交集并存储、求并集。
5、zset,TreeSet(Java),功能:添加、删除、查看个数、查看权重、范围查询和它的逆序集合。
6、bitmap,二进制string,功能:设置当前位、获取当前位、统计为1的个数、进行逻辑运算并将结果保存。
单线程模型
1、redis单线程使用IO多路复用技术保证效率。
持久化机制
RDB和AOF
RDB:以二进制 + 数据压缩方式存储,文件体积小。会有数据丢失的问题:在生成上一次快照和下一次快照的间隔中追加到redis的数据可能会丢失。
AOF:先将写入的数据实时加入到内存缓存中,再根据不同策略写入到磁盘。可以考虑appendfsync everysec,即每秒钟同步一次,显式地将多个写命令从内存缓存同步到硬盘。这样即使丢数据,也只会丢1秒的。
单机redis数据持久化方案
采用混合持久化方式,即RDB与AOF相结合的方式。
具体来说,当 AOF rewrite 时,Redis 先以 RDB 格式在 AOF 文件中写入一个数据快照,再把在这期间产生的每一个写命令,追加到 AOF 文件中。因为 RDB 是二进制压缩写入的,这样 AOF 文件体积就变得更小了。其中 AOF rewrite 是指 AOF 文件中只保留当前 key 的最新值。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步