一、简介
1.概念:Redis是以Key-Value形式进行存储的内存型NoSQL数据库。
2.特点:在内存中对数据进行操作,效率特高。读的效率是11万/s,写的效率是8.1万/s.
二、五大类型
1.String类型:是redis最基本的数据类型,属于二进制安全类型,可以包含任何数据。
2.Hash类型:是一个String类型的field和value的映射表,特别适合存储对象。
3.List类型:是简单的字符串列表,按照插入顺序排列,也是redis数据库最重要的数据结构之一。
4.Set类型:是String类型的无序集合。
5.Zset类型:是String类型的集合,且不允许重复。
三、常用命令
1.Key操作
exists:判读key是否存在,【语法:exists key名称】,返回值:存在返回数字,不存在返回0;
expire:设置key的过期时间, 【语法:expire key秒数】,返回值:成功返回1.失败返回0;
ttl:查看key的过期剩余时间, 【语法:ttl key】,返回值:返回过期剩余时间,不过期返回-1;
del:根据key删除键值对, 【语法:del key】,返回值:被删除key的数量;
2.String操作
set:设置指定key的值 ,【语法:set key value】,返回值:成功OK;
get:获得指定key的值, 【语法:get key】,返回值:key的值,不存在返回nil;
setnx:当且仅当key不存在时新增,【语法:setnx key value】,返回值:不存在返回1,存在返回0;
setex:设置key的存活时间,无论是否存在指定key都能新增,如果存在key覆盖旧值,同时指定过期时间,【语法:setex key seconds value】,返回值:OK;
四、持久化策略
1.RDB
rdb模式是Redis持久化策略的默认模式,可以在指定的时间间隔内生成数据快照,默认保存在dump.rdb文件中。redis重启后会自动将该文件加载到内存中进行读取。
特点:用户可以使用SAVE或BGSAVE手动保存数据。
优点:
rdb是一个紧凑的文件,直接使用rdb文件就可以恢复数据;
数据保存由子进程进行,不影响父进程;
数据恢复效率高;
2.AOF
aof是默认关闭的,需要在redis.conf文件中手动开启。
特点:aof文件在数据恢复时的读取级别高于rdb文件。
五、主从复制
为了保证单一节点可用性,redis支持主从复制功能。
特点:每个节点可以有无数个复制品,其中一个复制品是主,其它复制品是从,也就是一主多从。
优点:
读写分析,主节点负责写,从节点负责读;
增加单一节点的健壮性,提升整个集群的稳定;
单向同步,主节点数据会同步到从节点,但从节点数据不能传输给主节点;
六、哨兵
哨兵的作用是监控整个节点的运行状态,在主节点宕机时,帮助重新选取新的主节点,维持节点的正常运行。
单哨兵:只要发现主节点宕机就选取新的主节点;
多哨兵:一定数量的哨兵认为主节点宕机时,才选取新的主节点;
七、cluster
1.Redis集群是一个由多个主从节点群组成的分布式服务集群,它具有复制、高可用和分片特性。
2.Redis集群不需要sentinel哨兵也能完成节点移除和故障转移的功能。
3.需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。
4.redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单。
5.redis集群的运用主要是针对海量数据+高并发+高可用的场景。