1-redis的key-value设计
选择value
(1)是否需要排序,需要,用sortset
(2)缓存的值是单个还是多个
(3)单个:简单String,对象值的用Hash
(4)多个:不能重复用set,会重复的用list
简易方式
(1)要排序的用sortset
(2)剩下的用String
所有的value都转换成json字符串,然后缓存到redis中,避免泛行操作麻烦
2key设计
唯一性、可读性(命名规范)employe_info:id1、时效性
简易版:直接使用表的主键
3-安全性
redis.conf文件修改密码
4-redis事务
单个redis命令是原子性的,但没在事务上增加任何维持原子性的机制,所以redis的事务执行不是原子性的
redis事务类似“打包的批量执行脚本”,中间失败,前面的不会回滚,后面的也不会停止
5-redis持久化机制
redis会把数据从内存备份到硬盘,重新启动后会提前把数据从硬盘加载到内存
(1)快照(RDB)
手动:save阻塞当前redis服务器,不建议;用bgsave
优点:全量备份,缺点:没办法秒级、兼容问题
(2)文件追加(AOF)
命令记录
优点:安全性高,损失少,误操作flushall命名,可用AOF恢复
AOF日志是增量日志,不会断电损害,太大时,redis可重写AOF
缺点:文件体积大,稍慢
(3)混合持久RDB-AOF
6-Redis内存淘汰机制
(1)常见淘汰机制
随机淘汰,TTL机制(先淘汰要过期的),LRU:淘汰最近最少使用的(常用);LFU:淘汰一定时间使用次数最少的。(常用)
Redis淘汰策略:直接提示内存不足、处理设置了过期时间的key、处理所有的key
7-过期key的处理
(1)惰性删除
访问到发现过期再删除,cpu友好,但浪费内存
(2)定时删除
设置key时间时,加个定时器,时间到立即删除,不占内存,对cpu不友好
(3)定期删除(常用)
设置一段时间,统一删除一批过期的。
8-jedis:java连接redis的工具
官网地址:https://github.com/redis/jedis
9-springboot使用的java连接redis的lettuce
spring-boot-starter-data-redis
redis笔记2(key\value的设计)
最新推荐文章于 2024-08-23 12:37:01 发布