简介
- 主要的数据类型
-
字符串 String
-
列表 List
-
集合 Set
-
有序集合 SortedSet
-
哈希 Hash
- 使用方式
-
CLI 命令行调用
-
API 代码调用
-
GUI 图形界面调用
- 主要优势
-
性能极高
-
数据类型丰富,单键值对最大支持512M大小的数据
-
简单易用,支持所有主流的编程语言
-
支持数据持久化,主从复制,哨兵模式等高可用特性
安装配置
mac安装:在系统命令行输入
1.下载redis
brew install redis
2.启动服务
redis-server
3.停止服务
ctrl +c
4.启动客户端
redis-cli
打开新终端的快捷键
command + N
RedisInsinght的使用
操作redis的GUI工具
redis官网:redis.io/downloads/#…
字符串 String
默认使用字符串存储数据
Redis的键值默认支持二进制,不支持中文,要设置中文可以在启动客户端的时候,添加--raw,显示原始数据
1.添加字符串
SET key value
2.查找对应的数据
GET key
3.clear清空屏幕
4.查看键的过期时间
TTL 键
5.expire 键 时间
设置过期时间
6.setnx 只有当键不存在的时候才设置键的值
列表 List
是基于双向链表(ziplist 压缩列表为小数据优化) 实现的有序、可重复、支持首尾高效操作(O (1))、中间操作低效(O (n))的字符串元素集合,可作为队列 / 栈 / 消息队列使用。
1.将数值添加到头部或者尾部 LPUSH RPUSH
LPUSH key value
2.获取列表内容
从第一个字母开始获取,到最后一个元素
LRANGE key 0 -1
3.删除元素
删除前两个元素
LPOP key 数值
集合 Set
无序集合,元素不可以重复
1.添加元素
SADD key value
2.查询元素
SMEMBERS key
有序集合 SortSet
- 特点
- 有序集合的成员是唯一的
- 但是分数可以重复
- 有序集合中的排序是按照从小到大排序的
1.添加元素
ZADD key value
2.查看元素
ZRANGE key 0 -1
3.查看排名
ZRANK key value中的元素
哈希 hash
键值对的集合,适合用来存储对象
1.添加键值对
HSET key value
发布订阅模式
- 命令
1.发布信息到指定的频道
publish
2.订阅一个频道
subscribe
- 使用
1.打开一个终端,订阅频道(订阅频道的终端有多个)
subscribe xx
2.打开另一个终端,发布信息
publish xx xx
回车后可以看到第一个终端收到了信息
消息队列 Stream
- 是轻量级的消息队列,可以解决消息无法持久化,无法记录历史信息的问题
- 命令都以X开头
1.添加信息 XADD key id value
XADD shopping * eat apple
* 表示id,返回时自动生成
2.查看数据 XRANGE key - +
3.删除消息 XDEL key id
4.消息创建后消费 XREAD COUNT x BLOCK 1000 STREAMS key 0
从头开始读取消息队列,一次读取x条消息,如果没有消息的话就阻塞1000毫秒
5.创建消费者组XGROUP CREATE key group1 0
Redis 事务
MUTLTI 开启事务
SET
LPUSH
SADD
EXEC 执行事务的所有命令
特点
-
在执行exec命令之前,所有的命令都放在队列中,不会立即执行
-
收到exec命令后事务开始执行,事务中的任一个命令执行失败,其他命令依旧会执行
-
在命令的执行过程中,其他客户端的命令不会插入到队列中
持久化
- 问题
基于内存的数据库,如果没有持久化,一旦服务器重启或者断电,之前所有的数据都会丢失
- 两种方式
RDB
-
在指定的时间间隔内将数据写入磁盘,是某一个时间点上的完整副本,可以通过配置文件(redis.conf)中的save参数来设置
-
适合用来做备份
AOF
-
实行写命令的时候,不仅会将写命令写入到内存,还会将写命令追加到一个文件中(AOF),以日志的形式记录每一个写操作
-
开启配置:将配置文件中的appendonly参数的值改为yes
主从复制
-
是什么:将一台服务器的数据复制到其他服务器,一个主节点可以有多个从节点,每个从节点只能有一个主节点
-
修改从节点的两种方式
1.查看当前节点角色 role
2.配置所属主节点
replicaof host port
slaveof host port
- 修改配置文件
1.在redis的安装目录下,把redis.conf复制到根目录下,作为主节点的配置文件
cp redis.conf ~
2.回到根目录,再复制一份6380的配置文件,作为从节点的配置文件
cp redis.conf redis-6380.conf
3.改动配置文件参数
port 6380
pidfile 6380
dbfilename dump-6380.rdb
replicaof 127.0.0.1 6379
5.启动新的服务器
redis-server redis-6380.conf
6.开启新的终端,开启从节点
redis-cli -p 6380
7.查看节点状态
info replication
哨兵模式 Sentinel
- 作用
-
监控:通过不断发送命令,检查redis是否正常
-
通知:某个节点出问题,通过发布订阅模式通知其他节点
-
自动故障转移:主节点不能工作的时候,会开启自动转移的操作
1.添加配置文件 sentinel.conf,在文件添加如下配置
sentinel monitor master host port 1
有一个哨兵节点统一就可以进行故障转移
2.启动哨兵节点
redis-sentinel sentinel.conf