注:仅仅作为个人记录。
为什么要用Redis的的的呢?原因很简单,快!
为什么速度快?Redis是基于内存的数据库,一个完全开源免费的key-value内存数据库
数据虽在内存,但是提供了持久化的支持(两种方式:rdb(redis database)和aof(append of file)),即可以将内存中的数据异步写入到硬盘中,同时不影响继续提供服务
RDB和AOF哪个好?
- 官方推荐都启用
- 对数据不敏感,单独用RDB
- 不建议单独使用AOF
- 若作为纯缓存使用,可以都不开启
支持数据结构丰富(string(字符串),list(链表),set(集合),zset(sorted set - 有序集合))和Hash(哈希类型,md5加密出来的那个串)
优点:
支持主从模式(并且速度极快),可以配置集群。官方提供了一个数据,Slave在21秒即完成了对Amazon网站10G key set的复制。
缺点:
正因为是内存类型数据库,所以不擅长储存大量的数据,储存数据的多寡直接受内存大小的影响。
场景:
- 在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存,-------迅速响应。
列如:大范围的数据统计,统计结果直接放在Redis中. - 频繁访问的数据------查询
列如:大型网站的首页固定资源,如图片,统一的推荐信息。
需要额外了解的问题:
- 如何设置主从模式和集群模式?
- 持久化的储存RDB和AOF优缺点和设置方式?
- Redis的发布与订阅?
- Redis做热数据缓存的时候,如何同步数据?
- Redis的消息队列如何实现?
- Redis 哈希槽的概念?
- Redis 集群方案什么情况下会导致整个集群不可用?
- 怎么理解 Redis 事务?
- Redis 的内存用完了会发生什么?
- 使用过 Redis 分布式锁么,它是什么回事?
- MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证redis 中的数据都是热点数据?