目录
Redis的一些使用场景
Redis的一些常用场景,有数据排序查询、session存储,缓存等,数据排序前面的日志中有体现,如果我们想要维护一个歌曲热度排名名单,可以在Redis中使用有序集合,通过ZADD命名添加对象到一个有序集合中,之后使用ZREVRANGE命令或ZRANGE命令将集合里的元素按权重降序或升序输出。session通常存储在服务器之外的外部内存中,Redis作为基于内存的轻量级键值数据库,用来存放session十分合适,Redis在内存里提供了原生的数据结构实现(string、list、hash、set等),并且提供了对应的API,实现高效率的数据处理,对比起关系型数据库,优势在于访问延迟很低。此外还有一个重要的场景是Redis可以作为关系型数据库的缓存,以次来提高数据库查询的效率,例如,对关系型数据库查询较缓慢时,我们可以将一些查询结果缓存到Redis中,下一次查询时先去Redis中查找是否有记录,如果没有再向关系数据库中查询。同样的,在向关系数据库中插入记录时,也可以先将其插入到Redis中,减轻数据库访问的压力。但是对于Redis作为关系数据库缓存的场景中,有一点需要注意,还记得前面日志说到Redis事务时,对比关系数据库事务,它们两者有什么区别吗?一大区别是,Redis事务并不是完全符合原子性的,Redis事务并不支持回滚,详细的这里不详述,大家可以看我之前那篇日志《列表/集合排序与Redis事务》。所以在对于原子性,一致性等有硬性要求的场景下,就