Redis命令语法大全

Redis命令大全

更多命令可以参考规范文档:http://www.redis.cn/commands.html

启动Redis服务器:到Redis的bin目录执行 ./redis-server &

关闭redis服务器:到Redis的bin目录执行 ./redis-cli shutdown

连接redis客户端:到redis目录执行:redis-server
/usr/local/redis/etc/redis.conf开启服务,再执行 redis-cli –h ip –a 密码或者
–p 端口号(6379)

查看状态:ping返回PING

查看当前key的数目:dbsize

切换库:select db

删除当前库的数据:flushdb

退出连接:exit/quit

Key命令:

显示所有key :keys *

判断key存在:exists key

设置key的存在时间:expire key 时间秒

查看key剩余时间:ttl key,结果为 -1 代表不过期,-2
代表key不存在,其他数字代表剩余时间

显示key的类型:type key

删除key: del key

设置key值:set key 值

同时设置key值:mset key1 值1 key2 值2 。。。

获取key值:get key

同时获取key值:mget key1 key2 ……

将key中的数字加一、减一:incr key/decr key

追加key值:append key 值

返回字符串长度:strlen key

截取字符串:getrange key 开始下标 结束下标

替换字符串:setrange key 下标 值

Hash命令:

设置hash值:hset hash名 key名 value值

获取hash值:hget hash名 key名

同时设置hash值:hmset hash名 key1名 value1值 key2名 value2值

同时获取hash值:hmget hash名 key1名 key2名

获取所有hash值:hgetall hash名

删除hash的key值:hdel hash名 key1 key2….

查看hash中的所有key:hkeys hash名

返回所有hash中的所有value: hvals hash名

查看hash中存在key: hexists hash名 key名

List命令:

左设置list值:lpush list名 value1 v2 v3…

右设置list值:rpush list名 value1 v2 v3…

获取list值:lrange list名 开始下标 结束下标

获取指定下标的值:lindex list名 下标

获取list的长度:llen list名

移除list的值:lrem list名 count(数量 0 代表全部删除 正数 代表从左向右
负数代表从右向左) value

设置相应下标的的list值:lset list名 下标 value值

插入list的值:linsert list名 before|after 需插入的value 待插入的value

Set命令:

添加数据到set: sadd set名 value1 v2…

获取set所有数据: smembers set名

判断set存在数据:sismember set名 value值

获取set的元素个数:scard set名

删除set的元素:srem set名 value1 v2…

随机获取set的元素:srandmember set名 [count]

随机删除set的元素:spop set名 [count]

有序集合sorted set

添加数据:zadd set名 数字(scores) value 数字 v2

升序显示数据:zrange set名 开始下标(0)
结束下标(-1)withscores

降序显示数据 zrevrange set名 开始下标(0)结束下标(-1) withscores

删除数据:zrem set名 value1 v2 …

获取元素个数:zcard set名

升序获取介于min max区间的值:zrangbyscore set名 [“(”
代表不包括最小值]min数 max数 [withscores] [limit start stop]

降序获取介于min max区间的值:zrevrangbyscore set名 [“(”
代表不包括最小值]min数 max数 [withscores] [limit start stop]

获取介于min max区间的个数:zcount set名 min max数

事务

标记事务:multi

执行事务:exec

取消事务:discard

Redis命令语法大全_第1张图片

监视key:watch key1 k2…

取消监视:unwatch

Redis命令语法大全_第2张图片

持久化

1.RDF方式配置步骤:

①:查看 ps -ef | grep redis ,如果 redis 服务启动,先停止。

在这里插入图片描述

②:修改 redis.conf 文件, 修改前先备份,执行 cp redis.conf bak_redis.conf

在这里插入图片描述

查看默认启用的 RDB 文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JaG8QXq8-1614156952919)(media/3f5e51abebcd8b9d8fe37de410b61bc7.png)]

③:编辑 redis.conf 增加 save 配置, 修改文件名等。vim redis.conf

Redis命令语法大全_第3张图片

修改的内容:

在这里插入图片描述

把原来的默认的 dump.rdb 删除,修改 redis.conf 后,重新启动 redis

在这里插入图片描述

④:在 20 秒内容,修改三个 key 的值

Redis命令语法大全_第4张图片

⑤:查看生成的 rdb 文件

Redis命令语法大全_第5张图片

2.AOF方式配置步骤:

①:停止运行的 redis , 备份要修改的 redis.conf

②:查看 redis 安装目录/src 下有无 .aof 文件。 默认是在 redis 的当前目录

在这里插入图片描述

** ③:编辑 redis.conf**

** 设置 appendonly 为 yes 即可。**

** 查看 appendfsync 的当前策略。**

Redis命令语法大全_第6张图片

** 查看 appendfilname 的文件名称**

在这里插入图片描述

** ④:在 redis 客户端执行 写入命令**

Redis命令语法大全_第7张图片

** ⑤ 查看 aof 文件**

在这里插入图片描述

Redis命令语法大全_第8张图片

主从复制

方式
1:修改配置文件,启动时,服务器读取配置文件,并自动成为指定服务器的从服务器,从而构成主从复制的关系

方式 2: ./redis-server --slaveof ,在启动 redis
时指定当前服务成为某个主 Redis 服务的从 Slave

方式 1 的实现步骤:

模拟多 Reids 服务器, 在一台已经安装 Redis 的机器上,运行多个 Redis
应用模拟多个 Reids 服务器。一个 Master,两个 Slave.

A、新建三个 Redis 的配置文件

如果 Redis 启动,先停止。

作为 Master 的 Redis 端口是 6380

作为 Slaver 的 Redis 端口分别是 6382 , 6384

从原有的 redis.conf 拷贝三份,分别命名为 redis6380.conf, redis6382.conf ,
redis6384.conf

Redis命令语法大全_第9张图片

B、 编辑 Master 配置文件

编辑 Master 的配置文件 redis6380.conf : 在空文件加入如下内容

include /usr/local/redis-3.2.9/redis.conf

daemonize yes port 6380

pidfile /var/run/redis_6380.pid logfile 6380.log

dbfilename dump6380.rdb

配置项说明:

include : 包含原来的配置文件内容。/usr/local/redis-3.2.9/redis.conf
按照自己的目录设置。

daemonize:yes 后台启动应用,相当于 ./redis-server & , &的作用。

port : 自定义的端口号

pidfile : 自定义的文件,表示当前程序的 pid ,进程 id。

logfile:日志文件名

dbfilename:持久化的 rdb 文件名

C、 编辑 Slave 配置文件

编辑 Slave 的配置文件 redis6382.conf 和 redis6384.conf: 在空文件加入如下内容

①:redis6382.conf:

include /usr/local/redis-3.2.9/redis.conf

daemonize yes

port 6382

pidfile /var/run/redis_6382.pid logfile 6382.log

dbfilename dump6382.rdb slaveof 127.0.0.1 6380

配置项说明:

slaveof : 表示当前 Redis 是谁的从。当前是 127.0.0.0 端口 6380 这个
Master 的从。

②:redis6384.conf:

include /usr/local/redis-3.2.9/redis.conf daemonize yes

port 6384

pidfile /var/run/redis_6384.pid logfile 6384.log

dbfilename dump6384.rdb

slaveof 127.0.0.1 6380

D、启动服务器 Master/Slave 都启动

启动方式 ./redis-server 配置文件

启动 Redis,并查看启动进程

Redis命令语法大全_第10张图片

E、 查看配置后的服务信息

命令:

①: Redis 客户端使用指定端口连接 Redis 服务器

./redis-cli -p 端口

②:查看服务器信息

info replication

登录到 Master:6380

在这里插入图片描述

查看当前服务信息

在客户端的 Redis 内执行命令 info replication

Master 服务的查看结果:

Redis命令语法大全_第11张图片

在新的 Xshell 窗口分别登录到 6382 ,6384 查看信息

Redis命令语法大全_第12张图片

6384 也登录内容同 6382

F、 向 Master 写入数据

在 6380 执行 flushall 清除数据,避免干扰的测试数据。 生产环境避免使用。

Redis命令语法大全_第13张图片

G、在从 Slave 读数据

6382,6384 都可以读主 Master 的数据,不能写

Redis命令语法大全_第14张图片

Slave 写数据失败

在这里插入图片描述

容灾处理

master 上(冷处理:机器挂掉了,再处理)当 Master 服务出现故障,需手动将 slave
中的一个提升为 master, 剩下的 slave 挂至新的

命令:

①:slaveof no one,将一台 slave 服务器提升为 Master (提升某 slave 为 master)

②:slaveof 127.0.0.1 6381 (将 slave 挂至新的 master 上)

执行步骤:

A、将 Master:6380 停止(模拟挂掉)

Redis命令语法大全_第15张图片

B、 选择一个 Slave 升到 Master,其它的 Slave 挂到新提升的 Master

Redis命令语法大全_第16张图片

C、 将其他 Slave 挂到新的 Master

在 Slave 6384 上执行

Redis命令语法大全_第17张图片

现在的主从(Master/Slave)关系:Master 是 6382 , Slave 是 6384

查看 6382:

Redis命令语法大全_第18张图片

D、原来的服务器重新添加到主从结构中

6380 的服务器修改后,从新工作,需要把它添加到现有的Master/Slave 中

先启动 6380 的 Redis 服务

Redis命令语法大全_第19张图片

连接到 6380 端口

Redis命令语法大全_第20张图片

当前服务挂到 Master 上

Redis命令语法大全_第21张图片

E、 查看新的 Master 信息

在 6382 执行:

Redis命令语法大全_第22张图片

现在的 Master/Slaver 关系是:

Master: 6382;Slave: 6380、6384

Sentinel高可用

(1)、Sentinel 配置

Sentinel 配置文件 ,复制三份sentinel.conf文

Redis命令语法大全_第23张图片

三个文件分别命名:

● sentinel26380.conf

● sentinel26382.conf

● sentinel26384.conf

● 执行复制命令 cp sentinel.conf xxx.conf

在这里插入图片描述

(2)、三份 sentinel 配置文件修改

● 修改 port 26380、 port 26382、 port 26384

● 修改 sentinel monitor mymaster 127.0.0.1 6380 2

格式:sentinel monitor

Sentinel监控主(Master)Redis,
Sentinel根据Master的配置自动发现Master的Slave,Sentinel默认端口号为26379 。

在这里插入图片描述

sentinel26380.conf

(1) 修改 port

在这里插入图片描述

(2)修改监控的 master 地址

Redis命令语法大全_第24张图片

sentinel26382.conf 修改port 26382 , master的port 6382

sentinel26384.conf 修改port 26384 , master的port 6382

(3)、启动主从(Master/Slave)Redis

启动 Reids

Redis命令语法大全_第25张图片

查看 Master 的配置信息

连接到 6382 端口

在这里插入图片描述

使用 info 命令查看 Master/Slave

Redis命令语法大全_第26张图片

(4)、启动 Sentinel

redis安装时make编译后就产生了redis-sentinel程序文件,可以在一个redis中运行多个sentinel进程。

启动一个运行在Sentinel模式下的Redis服务实例

./redis-sentinel sentinel 配置文件

执行以下三条命令,将创建三个监视主服务器的Sentinel实例:

./redis-sentinel …/sentinel26380.conf

./redis-sentinel …/sentinel26382.conf

./redis-sentinel …/sentinel26384.conf

在 XShell 开启三个窗口分别执行:

Redis命令语法大全_第27张图片

Redis命令语法大全_第28张图片

(5)、主 Redis 不能工作

让 Master 的 Redis 停止服务, 执行 shutdown

先执行 info replication 确认 Master 的 Redis ,再执行 shutdown

Redis命令语法大全_第29张图片

查看当前 Redis 的进程情况
Redis命令语法大全_第30张图片

(6)、Sentinel 的起作用

在 Master 执行 shutdown 后, 稍微等一会 Sentinel 要进行投票计算,从可用的
Slave选举新的 Master。

查看 Sentinel 日志,三个 Sentinel 窗口的日志是一样的。

在这里插入图片描述

查看新的 Master

Redis命令语法大全_第31张图片

查看原 Slave 的变化

Redis命令语法大全_第32张图片

(7)、新的 Redis 加入 Sentinel 系统,自动加入 Master

重新启动 6382

在这里插入图片描述

查看 6384 的信息

Redis命令语法大全_第33张图片

测试数据:在 Master 写入数据

在这里插入图片描述

在 6382 上读取数据,不能写入

Redis命令语法大全_第34张图片

Redis 安全设置

● 开启访问密码设置

修改 redis.conf , 使用 vim 命令。 找到
requirepass 行去掉注释,requirepass 空格后就是密码。

例 1:设置访问密码是 123456 ,这是练习使用,生产环境要设置复杂密码修改
redis.conf,文件 480 行左右。原始内容:

在这里插入图片描述

修改后:

在这里插入图片描述

查看修改结果:

在这里插入图片描述

● 访问有密码的 Redis

如果 Redis 已经启动,关闭后,重新启动。

访问有密码的 Redis 两种方式:

①:在连接到客户端后,使用命令 auth 密码 , 命令执行成功后,可以正常使用 Redis

②:在连接客户端时使用 -a 密码。例如 ./redis-cli -h ip -p port -a password

启动 Redis

Redis命令语法大全_第35张图片

使用 ① 访问

Redis命令语法大全_第36张图片

输入命令 auth 密码

Redis命令语法大全_第37张图片

使用 ② 方式

在这里插入图片描述

绑定 ip

修改 redis.conf 文件,把# bind 127.0.0.1 前面的注释#号去掉,然后把
127.0.0.1 改成允,许访问你 redis 服务器的 ip 地址,表示只允许该 ip
进行访问。多个 ip 使用空格分隔。

例如 bind 192.168.1.100 192.168.2.10

在这里插入图片描述

** 修改默认端口**

修改 redis 的端口,这一点很重要,使用默认的端口很危险,redis.conf 中修改
port 6379

将其修改为自己指定的端口(可随意),端口
1024 是保留给操作系统使用的。用户可以使用的范围是 1024-65535

在这里插入图片描述

repass 空格后就是密码。

例 1:设置访问密码是 123456 ,这是练习使用,生产环境要设置复杂密码修改
redis.conf,文件 480 行左右。原始内容:

[外链图片转存中…(img-3MtzJXAs-1614156952957)]

修改后:

[外链图片转存中…(img-4ALUkDCw-1614156952958)]

查看修改结果:

[外链图片转存中…(img-nAzUAbWN-1614156952959)]

● 访问有密码的 Redis

如果 Redis 已经启动,关闭后,重新启动。

访问有密码的 Redis 两种方式:

①:在连接到客户端后,使用命令 auth 密码 , 命令执行成功后,可以正常使用 Redis

②:在连接客户端时使用 -a 密码。例如 ./redis-cli -h ip -p port -a password

启动 Redis

[外链图片转存中…(img-Eca8jyFP-1614156952959)]

使用 ① 访问

[外链图片转存中…(img-5sUxoSX6-1614156952960)]

输入命令 auth 密码

[外链图片转存中…(img-RU2dBOuw-1614156952961)]

使用 ② 方式

[外链图片转存中…(img-dYICST4M-1614156952962)]

绑定 ip

修改 redis.conf 文件,把# bind 127.0.0.1 前面的注释#号去掉,然后把
127.0.0.1 改成允,许访问你 redis 服务器的 ip 地址,表示只允许该 ip
进行访问。多个 ip 使用空格分隔。

例如 bind 192.168.1.100 192.168.2.10

[外链图片转存中…(img-PiyGQXCg-1614156952962)]

** 修改默认端口**

修改 redis 的端口,这一点很重要,使用默认的端口很危险,redis.conf 中修改
port 6379

将其修改为自己指定的端口(可随意),端口
1024 是保留给操作系统使用的。用户可以使用的范围是 1024-65535

[外链图片转存中…(img-BIBSUwWX-1614156952963)]

使用 -p 参数指定端口,例如:./redis-cli -p 新设置端口

你可能感兴趣的:(Redis学习笔记,linux,redis)