redis是目前最受欢迎的非关系型(NoSQL)数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库
redis特性:
1.基于内存,读写效率高
2.支持分布式,理论上可以无限扩展
3.key-value存储系统
2.redis的应用场景 1.缓存由于redis具有持久化特性可以避免数据丢失因此我们可以将某些常用的数据缓存到redis中
也能为数据库减少高并发请求带来的压力
方式一:我们只对查询后的数据做缓存,当有增删改操作时清除缓存(或设置过期)再次查询后存入缓存
方式二:对查询和增加的数据做缓存,当有增加操作时,先去数据库执行添加再对缓存做添加,
当有修改操作时对数据库修改后同时对缓存也进行修改当有删除操作时删除数据库数据,并删除缓存(或设置过期)中对应的数据
2.消息队列(生产者/消费者模式)
由于redis的List数据类型是双向链表,可以把生产者生产的数据的放入list链表中通过lpush 命令
可以把消费者消费数据看做从链表中取出数据通过lpop取出数据这样也保证了数据的有序性
3.时间轴
通过lrange来取出最新的数据
4.计数器
String hash sorted set有自带的自增方法 场景统计微博每天的浏览数量 设置初始值并指定过期时间
5.好友关系
对两个人的好友数据区交集就可以知道好友数据了
6.分布式锁 当有需要对数据进行修改删除或新增是先通过set方法来设置一个key通过true或flase来判断此数据是否在使用true则证明没有人操作改数据 flase则证明有人在操作改数据