Redis总结

1.你在项目中的redis的应用场景?

1. 5大value类型三大特殊类型
2.基本上就是做缓存
3.为的是服务无状态
4.哪些数据结构和对象在单机里需要单机锁
在多机需要分布式锁 利用redis实现
5.无锁化

2.Set和Zset分别用与哪些场景?

set是无序的,去重    快速判断某个元素是否存在
zset是有序的  排行榜  优先队列

3.redis是单线程还是多线程?

1.无论什么版本Redis是单线程的  减少I/O  避免了多线程操作时的锁竞争和上下文切换 
2.单个CPU核心性能的提高已经到达瓶颈 4.0引入多线程机制
3.Redis的多线程不是将一个Redis实例拆分成多个线程进行处理,而是通过多个子进程来处理多个Redis实例
4.目前Redis 6.x版本引入了线程脚本

4.为什么要用redis

1.高可用
2.高并发

5.过期策略

1. 定时扫描   过期字典中随机20个key 删除其中过期的key 如果过期的超过1/4那就重复
2. 惰性删除  访问时检查 key的过期时间 过期就删除 不做返回
3. 定时扫描会导致好多key过期了并没有被删除所以有了惰性删除

6.redis为什么快

1.纯内存访问 
2.单线程没有上下文的切换 
3.缓存时间戳(获取一次系统时间,每秒更新)
4. 渐进式ReHash(hash表扩容时每次访问移动一组,维护两张hash表)
 

你可能感兴趣的:(总复习章节,redis,缓存,数据库)