Redis的介绍
redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串strings,散列hashes,列表lists,集合sets,有序集合sorted sets的范围查询,bitmaps,hyperloglogs 和地理空间geospatial索引半径查询。
Redis的特点
Redis以内存作为数据存储介质,所以读写数据的效率极高,远远超过数据库。
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启时可以再次加载使用。
Redis是单线程的,所以Redis的所有单个操作都是原子性的。减少了上下文切换,减少了线程间的切换对CPU的消耗。也减少了加锁,解锁的过程。也减少了死锁的风险。
Redis支持数据的备份(master-slave)与集群(分片存储),以及拥有哨兵监控机制。
支持事务。
Redis的场景
数据缓存:为热点数据加速查询(主要场景),如热点商品、热点新闻等高访问量信息等。
即时信息查询:排行榜、网站访问统计、公交到站信息、在线人数信息等。
时效性信息控制:如验证码控制、投票控制等
分布式数据共享:如分布式集群架构中的session分离
Redis的优势
性能极高,Redis能读的速度是110000次/s,写的速度是81000次/s , 并且因为数据存在内存中,所以数据获取快。单条命令式保存原子性的,但是事务不保证原子性,通过MULTI和EXEC指令包起来。
假设在某一个大型网站首页一天有100万人访问,其中有一个板块为推荐新闻。要是直接从数据库查询,那么一天就要多消耗100万次数据库请求。将这种热点数据存到Redis(内存)中,要用的时候,直接从内存取,极大的提高了速度和节约了服务器的开销。