Redis

redis总结

2018-08-20  本文已影响19人  一个喜欢烧砖的人
1、什么是redis
2、redis的特点
3、redis支持的数据类型
4、为什么redis要把数据放在内存中
5、redis 是单进程单线程的
6、虚拟内存
7、分布式
8、读写分离模型
9、数据分片模型
10、redis的回收策略
11、使用redis的好处
12、redis比memchad有哪些优势
13、redis的常见性能问题和解决方案
14、mysql有2000w数据,redis中只有20w的数据,如何保证redis中的数据都是热点数据

相关知识:redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。redis 提供 6种数据淘汰策略:

15、memcache与redis的区别有哪些
16、redis常见的想能问题有哪些,如何解决
17、redis最适合的场景

Redis最适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed的功能,跟传统意义上的持久化有比较大的差别,那么可能大家就会有疑问,似乎Redis更像一个加强版的Memcached,那么何时使用Memcached,何时使用Redis呢?
如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:
Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

18 进阶总结

2、hash
订单保存
购物车保存

3、list
伪消息队列
并集 交集

4、set
去重

5、sortset
比set多了一个权重core参数,多了一个排序

3、内存的定时删除celue
定时删除
有一个定时器专门复杂删除过期的key,但是在大量的并发时,它是浪费资源的,cup应该用在key的读写上 而不是用在删除key上

定期删除+惰性删除
定期删除,就是每隔段时间(100ms)就是随机抽取过期的key进行删除,这样造成有一些就不会删除,这时惰性删除就排上用场了
惰性删除是在key被使用的时候 先判断是否过期,如果过期则删除,不过期则用
当然,定时删除+惰性删除也会存没有被随机到也没访问的key岂不是一直在?
这时就需要内部淘汰机制
内部淘汰机制
在redis.conf中有一行配置

# maxmemory-policy volatile-lru

#参数:其他的不说明 这是最常用的
allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的 Key。推荐使用,目前项目在用这种

2、缓存雪崩:缓存同一时间集体大面积失效,这个时候来了一大波请求,结果都怼到数据库上了,
解决:
1、缓存失效时间加上随机数 避免集体失效
2、使用互斥锁(是从数据库方面考虑,但是性能降低了)
3、双缓存(一个有失效时间 一个没有)

参考文章

上一篇 下一篇

猜你喜欢

热点阅读