目录
为什么要用Redis
1.现在存在即时性要求不高的,但是访问量大且频率不高的数据这样如果把数据缓存,这样可以减少读取数据库,提高系统性能,所以需要缓冲。缓存最快的是内存缓存,是速度最快,但是现在一般都是分布式架构,内存缓存对于微服务和分布式不适应,所以需要缓存中件。所以缓存中件就需要操作性能高(读取速度快 );
2.还有在分布式里面,对很多资源的操作需要加锁来保证数据安全和性能稳定,但是本地锁不使用于分布式中。所以用Redis来实现分布式锁。
Redis是一个开源的使用C语言编写的一个kv存储系统,是一个速度非常快的非关系远程内存数据库。通过复制、持久化和客户端分片等特性,用户可以很方便地将redis扩展成一个能够包含数百GB数据和每秒处理上百万次的请求的系统。目前支持多种语言的api,方便用户使用。与关系型数据库相比,redis的命令请求不需要经过查询分析器或查询优化器进行处理,也避免了更新数据时引起的随机读\写,这些慢操作。它直接读写内存中的数据,并且数据是按照一定的数据结构存储的。所以它的速度非常快。
redis同时也内置了事务、LUA脚本、复制等功能,提供两种持久化选项,一种是每隔一段时间将数据导入到磁盘(快照模式),另一种是追加命令到日志中(AOF模式)。如果只是作为高效的内存数据库使用也可以关闭持久化功能。通过哨兵(sentinel)和自动分区(Cuuster)的方式可以提高redis服务器的高可用性。
Redis 的特点:
1.性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s;
2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储;
3.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;
4.Redis支持数据的备份,即master-slave模式的数据备份;
5.Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来;
6.丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。