Redis命令语法大全

Redis命令大全

启动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

扫描二维码关注公众号,回复: 12767305 查看本文章

设置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

在这里插入图片描述

监视key:watch key1 k2…

取消监视:unwatch

在这里插入图片描述

持久化

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

在这里插入图片描述

修改的内容:

在这里插入图片描述

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

在这里插入图片描述

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

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

⑤:查看生成的 rdb 文件

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

2.AOF方式配置步骤:

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

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

在这里插入图片描述

** ③:编辑 redis.conf**

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

** ⑤ 查看 aof 文件**

在这里插入图片描述

在这里插入图片描述

主从复制

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

方式 2: ./redis-server --slaveof <master-ip> <master-port>,在启动 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

在这里插入图片描述

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,并查看启动进程

在这里插入图片描述

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

命令:

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

./redis-cli -p 端口

②:查看服务器信息

info replication

登录到 Master:6380

在这里插入图片描述

查看当前服务信息

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

Master 服务的查看结果:

在这里插入图片描述

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

在这里插入图片描述

6384 也登录内容同 6382

F、 向 Master 写入数据

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

在这里插入图片描述

G、在从 Slave 读数据

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

在这里插入图片描述

Slave 写数据失败

在这里插入图片描述

容灾处理

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

命令:

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

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

执行步骤:

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

在这里插入图片描述

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

在这里插入图片描述

C、 将其他 Slave 挂到新的 Master

在 Slave 6384 上执行

在这里插入图片描述

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

查看 6382:

在这里插入图片描述

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

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

先启动 6380 的 Redis 服务

在这里插入图片描述

连接到 6380 端口

在这里插入图片描述

当前服务挂到 Master 上

在这里插入图片描述

E、 查看新的 Master 信息

在 6382 执行:

在这里插入图片描述

现在的 Master/Slaver 关系是:

Master: 6382;Slave: 6380、6384

Sentinel高可用

(1)、Sentinel 配置

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

在这里插入图片描述

三个文件分别命名:

● 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 <name> <masterIP> <masterPort> <Quorum 投票数>

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

在这里插入图片描述

sentinel26380.conf

(1) 修改 port

在这里插入图片描述

(2)修改监控的 master 地址

在这里插入图片描述

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

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

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

启动 Reids

在这里插入图片描述

查看 Master 的配置信息

连接到 6382 端口

在这里插入图片描述

使用 info 命令查看 Master/Slave

在这里插入图片描述

(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 开启三个窗口分别执行:

在这里插入图片描述

在这里插入图片描述

(5)、主 Redis 不能工作

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

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

在这里插入图片描述

查看当前 Redis 的进程情况
在这里插入图片描述

(6)、Sentinel 的起作用

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

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

在这里插入图片描述

查看新的 Master

在这里插入图片描述

查看原 Slave 的变化

在这里插入图片描述

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

重新启动 6382

在这里插入图片描述

查看 6384 的信息

在这里插入图片描述

测试数据:在 Master 写入数据

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

使用 ① 访问

在这里插入图片描述

输入命令 auth 密码

在这里插入图片描述

使用 ② 方式

在这里插入图片描述

绑定 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 新设置端口

猜你喜欢

转载自blog.csdn.net/hcyxsh/article/details/114028122