1.redis是一个基于内存的高性能key-value数据库。
2.redis是单线程的,利用IO多路复用技术将并发访问变为串行访问,同时提高了访问效率,以及原子化。
3.redis常用5种数据类型也必须掌握的类型:String、List、Set、Sort Set、Hash
4.redis常用淘汰策略:
- noeviction:不删除策略
- allkeys-lru:优先删除最少使用的key
- volatile-lru:优先删除设置过期时间且最少使用的key
- allkeys-random:随机删除key
- volatile-random:从设置过期时间的key中随机删除
- volatile-ttl:优先删除剩余时间短的key
5.redis持久化方案
- rdb:存储文件小,恢复速度快,但是恢复时由于持久化间隔时间问题,可能存在数据丢失,rdb文件可能存在redis版本差异
- aof:支持秒级持久化,兼容性好,但是存储文件大,恢复速度慢,影响性能
- 在新版redis中,已经支持上述两种持久化方案共同使用
6.redis过期策略
- 1.定时删除:每个key设置过期时间同时设置定时任务,可是对cpu不友好,影响服务器性能。
- 2.惰性删除:每次使用时,判断是否过期,进行删除处理。会导致内存一直不释放,甚至内存泄漏。
- 3.定期删除:每隔一段时间,对过期的键进行移除。也可能造成内存泄漏。
最好的方案是惰性删除和定期删除共同使用。
7.redis,hash渐进式扩容
8.zset中使用跳跃表来实现有序。
9.bitmap在日常业务中的使用场景
- 用户签到
- 统计活跃用户
10.redis的发布订阅适用场景
适用于一些实时性要求比较高,允许重启等造成数据丢失的场景。
比如:娱乐直播中的双人pk等。