Redis(Remote dictionary server)是一个开源的基于内存的数据存储系统,它可以用作数据库缓存和消息队列等各种场景。与MySQL相比,不同的是,Redis的数据存储在内存中,而MySql的数据存储在磁盘里,因此Redis的读取速度非常快。
Redis支持五种基本数据类型:字符串(String),列表(List),集合(Set),有序集合(SortedSet),哈希(Hash),和五种高级数据类型:消息队列(Stream),地理空间(Geospatial),HyperLogLog(用于基数统计的算法),位图(Bitmap),位域(Bitfield)
Redis的三种使用方式:(1)CLI(命令行启动redis-cli,若想要显示中文redis-cli --raw代表显示原始内容)(2)API(通过java或python编写)(3)GUI(图形界面)
Redis可视化工具:RedisInsight(可直观的看到Redis的内存使用情况)
String:SET name +名称 也可以SET Name +名称 设置键值名称 (区分大小写)
GET name 获取名称
DEL(删除), EXISTS (判断是否存在)
KEY*(查找所有的键),FLUSHALL(删除所有键)
List: LPUSH或RPUSH将元素添加到列表头部或尾部 。
LRANGE 列表名称 0 -1: 获取列表
LPOP 列表名称 2 :删除列表前两个元素
LTRIM:删除列表中指定长度的数据
set:内容不能重复。
SADD:向set中添加元素。
等等
Redis的发布订阅模式
PUBLISH将消息发送到指定频道。
SUBSCRIBE来订阅频道,接受频道中的消息。
Redis事务
就是在一次请求中可以执行多个命令,主要通过MULTI开始,EXEC/DISCARD结束
Redis持久化
一是RDB(Redis Database)方式,另一种是AOF(Append Only File)
RDB是指在指定时间间隔内,将内存中的数据快照写入磁盘,它是某一个时间点上数据的完整副本,可以通过配置文件中的save参数来配置。
AOF是指追加文件,在执行写命令的时候,不仅会将命令写入到内存中,还会将命令写入到追加的文件中。
Redis的主从复制
主节点(master)负责写操作,从节点(slave)负责读操作。主节点会将自己的数据变化,通过异步的方式发送给从节点,从节点接收到主节点的数据之后,更新自己的数据,达到数据一致的目的。
Redis的哨兵模式
主从节点形成集群之后存在一定的问题,当主节点宕机之后,我们需要手动的重新选择主节点才可以,而哨兵模式则可以实现真正的自动,当领导者宕机之后,其他的哨兵会重新选择领导者。