Redis部分问题解答

redis:主要用来缓存数据+mysql持久化数据
	redis也可能持久化数据:rbd+aof持久化方式
		需要过期的数据、频繁查询数据库更新较少的数据、topN(ZSET)、秒杀商品列表、秒杀用户列表
不能再reids中存大key的数据,键使用:分隔多级 
数据类型:String  List(双向链表)  Set(使用Hash的key存数据) Hash(k-v) Zset(使用了Hash key存数据 val存分数)


redis缓存后 以后的请求直接查询redis缓存即可 速度快 
缓存穿透:访问数据库一定不存在的数据时,每次请求都经过redis处理 再到达数据库最后返回空
	解决:
		缓存空数据设置较短的过期时间
	问题:如果恶意攻击的脚本自动生成一定不存在的参数访问接口 又会导致缓存穿透、redis缓存的空值也会占用较多内存
	解决:
		布隆过滤器bloomfilter(它认为存在的数据数据库中可能不存在,它认为数据库不存在的数据一定不存在) 方案(项目初始化时预先加载 请求时使用的参数值列表 存到布隆过滤器中)  
缓存击穿:redis中缓存的热点key突然过期,高并发的大量请求查询缓存失败,同时访问数据库 导致宕机
	解决:热点key一般是秒杀之类的key
		人为控制热点key的过期
		分布式锁解决:缓存失效时 只放行一个请求查询数据库存到缓存  其他请求仍然读取缓存数据
缓存雪崩:类似于缓存击穿(雪崩是多个key同时失效, 多个key的并发请求量相加较大)
	分布式锁解决
缓存过期:redis中设置了过期时间的数据 如何被清理   redis中无论存了多少数据 内存占用多少  缓存过期始终按以下方式处理
	如果redis中存了数据,不在读redis,一直有新的写操作
	定时删除:
		redis过一段时间抽取一部分数据检查 如果过期了删除数据
	惰性删除:
		redis执行查询时 会先判断数据是否过期 如果过期删除数据
	
缓存淘汰策略:  redis内存满了,有新的写操作时会进行内存淘汰
	默认:不淘汰内存数据,返回一个写失败的错误信息
#  redis可以使用的最大内存字节数
# maxmemory <bytes>
# volatile-lru -> Evict using approximated LRU among the keys with an expire set.
# allkeys-lru -> Evict any key using approximated LRU.
# volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
# allkeys-lfu -> Evict any key using approximated LFU.
# volatile-random -> Remove a random key among the ones with an expire set.
# allkeys-random -> Remove a random key, any key.
# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
# noeviction -> Don't evict anything, just return an error on write operations.
#
# LRU means Least Recently Used: 最近最少使用(使用时间离现在远的优先淘汰)
# LFU means Least Frequently Used:最近不常使用(时间段内使用次数最少的优先淘汰)
# 配置内存淘汰策略
# maxmemory-policy noeviction

# The default of 5 produces good enough results. 10 Approximates very closely
# true LRU but costs more CPU. 3 is faster but not very accurate.
# LRU/LFU内存淘汰时抽样数据的值
# maxmemory-samples 5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值