Redis 配置---------2021年5月20日

redis 带密码连接
redis-cli -h 1270.0.01 -p 6379
# 带端口连接,进入交互页面
auth 123456
# 输入密码
redis set集合(增删改查)
sadd key value value ...
# 向 Set 中存储一个或多个值,如果要添加的值以及存在该 Set 中则不会重复添加。
srem key value value ...
# 删除指定 key 中的一个或多个元素,如果值不存在不作任何操作。
smembers key
# 获取该 key 中的所有元素
sismember key element
# 判断 element 是否存在于 key 中,存在返回 1,不存在返回 0,或者 key 不存在也返回 0。
scard key
# 获取一个集合中的元素数量
sranmember key
# 随机获得元素(srandmember)
查看,重启redis
systemctl restart redis_6379
# 重启
systemctl status redis_6379
# 查看状态
String
命令解释
get key获取key的值
set key v设置key的值
del key删除key的值
incr key将储值加1
decr key将储值减1
List
命令解释
rpush key [v…]将一个或多个加入列表右端
lpush key [v…]将一个或多个加入列表左端
rpop key移除并返回最右端的元素
lpop key移除并返回列表最左端的元素

参考链接

Redis 主从机配置
Redis主从复制特点

1.master可以拥有多个slave
2.多个slave可以连接同一个master外,还可以连接到其他slave
3.主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
4.提高系统的伸缩性
5.可以在master禁用数据持久化,注释掉master配置文件中的所有save配置,只需在slave上配置数据持久化

Redis主从复制过程

当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给 slave,slave将文件保存到硬盘上,再加载到内存中,接着master就会把缓存的命令转发给slave,后续master将收到的写命令发送给 slave。如果master同时收到多个slave发来的同步连接命令,master只会启动一个进程来写数据库镜像,然后发送给所有的slave。

Redis常用指令
1. Connection(连接)

AUTH(auth password)

#设置密码
127.0.0.1:6379> config set requirepass 654321  #将密码设置为654321
OK
127.0.0.1:6379> quit                           #退出再连接,让新密码对客户端生效
[root@iZ283jrawloZ bin]# ./redis-cli -p 6379
127.0.0.1:6379> ping                           #未验证密码,提示错误,需要验证
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456                    #密码错误,提示无效的密码
(error) ERR invalid password
127.0.0.1:6379> auth 654321                    #密码正确,连接成功
OK
127.0.0.1:6379> ping                           #ping操作命令成功
PONG

ECHO (echo message)

127.0.0.1:6379> echo "hello"
"hello"
# 双引号可以去除
127.0.0.1:6379> echo "goodbye"
"goodbye"

PING (测试链接是否正常)

#客户端与服务器连接正常
127.0.0.1:6379> ping                          
PONG                                          
#客户端与服务器连接不正常(网络不正常或服务器未能正常运行)
127.0.0.1:6379> ping                          
Could not connect to Redis at 127.0.0.1:6379: Connection refused 

SELECT (select index)

127.0.0.1:6379> set db_number 0           #默认使用0号数据库
OK
127.0.0.1:6379> select 1                  #使用1号数据库
OK
127.0.0.1:6379[1]> get db_number          #已切换至1号数据库,命令提示符多了[1]
(nil)
127.0.0.1:6379[1]> set db_number 1     
OK
127.0.0.1:6379[1]> get db_number
"1"
127.0.0.1:6379[1]> select 3               #切换至3号数据库
OK
127.0.0.1:6379[3]> select 0               #命令提示符从[1]变成[3],再切换回默认数据库
OK
127.0.0.1:6379> 
2.Server(服务器)

CLIENT GETNAME:返回连接设置的名字

127.0.0.1:6379> client getname                #新连接默认没有名字
(nil)
127.0.0.1:6379> client setname connection1    #设置名字
OK
127.0.0.1:6379> client getname                #返回名字
"connection1"

CLIENT LIST : 返回所有连接到服务器的客户端的信息和统计数据

127.0.0.1:6379> client list
id=2221941 addr=115.28.**.**:34696 fd=321 name= age=76816 idle=76816 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=2221942 addr=115.28.**.**:34698 fd=322 name= age=76816 idle=76799 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=get
id=2111339 addr=115.28.**.**:54388 fd=87 name= age=251748 idle=251748 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping

CLIENT KILL IP : PORT 关闭地址的客户端。因为 Redis 使用单线程设计,所以当 Redis 正在执行命令的时候,不会有客户端被断开连接。如果要被断开连接的客户端正在执行命令,那么当这个命令执行之后,在发送下一个命令的时候,它就会收到一个网络错误,告知它自身的连接已被关闭。

CONFIG GET(CONFIG GET PARAMETER): 用于获取redis服务器的配置参数。在2.4版本中,有些参数无法通过CONFIG GET访问,但在2.6版本中,所有的配置参数都可以用CONFIG GET访问。

# 查询所有的配置项
127.0.0.1:6379> config get *

#查询所有以s开头的配置项
127.0.0.1:6379> config get s*

#获取指定配置项
127.0.0.1:6379> config get save
1) "save"
2) "900 1 300 10 60 10000"

# 上面 save 参数的三个值表示:在 900 秒内最少有 1 个 key 被改动,
# 或者 300 秒内最少有 10 个 key 被改动,又或者 60 秒内最少有 1000 个 key 被改动,
# 以上三个条件随便满足一个,就触发一次保存操作。

CONFIG RESTART : 重置info命令的某些统计数据

CONFIG REWRITE :对启动 Redis 服务器时所指定的 redis.conf 文件进行改写:因为 CONFIG SET 命令可以对服务器的当前配置进行修改, 而修改后的配置可能和 redis.conf 文件中所描述的配置不一样, CONFIG REWRITE 的作用就是通过尽可能少的修改, 将服务器当前所使用的配置记录到 redis.conf 文件中。
对 redis.conf 文件的重写是原子性的, 并且是一致的: 如果重写出错或重写期间服务器崩溃, 那么重写失败, 原有 redis.conf 文件不会被修改。 如果重写成功, 那么 redis.conf 文件为重写后的新文件。

CONFIG SET :可以动态地调整 Redis 服务器的配置(configuration)而无须重启。

DBSIZE :返回当前数据库的 key 的数量。

FLUSHALL:清空整个 Redis 服务器的数据(删除所有数据库的所有 key )。此命令从不失败。

FLUSHDB :清空当前数据库中的所有 key。此命令从不失败。

INFO [section]:返回关于 Redis 服务器的各种信息和统计数值。通过给定可选的参数 section ,可以让命令只返回某一部分的信息.

FLUSHDB :清空当前数据库中的所有 key。此命令从不失败。

Key(键)

Keys pattern:查找所有符合给定模式 pattern 的 key 。

DEL key [key …] :删除给定的一个或多个 key 。不存在的 key 会被忽略。

Type key :返回 key 所储存的值的类型。

EXISTS key :检查指定key是否存在

EXPIRE key seconds:为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。

DUMP key :序列化给定 key ,并返回被序列化的值,如果值不存在,返回nil,否则,返回序列化之后的值。

RESTORE key ttl serialized-value:反序列化给定的序列化值,并将它和给定的 key 关联。参数 ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间。

#匹配数据库中所有key
127.0.0.1:6379> keys unreadAskForPriceCache*
  1) "unreadAskForPriceCache:8748"
  2) "unreadAskForPriceCache:386"
  3) "unreadAskForPriceCache:37"

#匹配以unreadAskForPriceCache开头的key
127.0.0.1:6379> keys unreadAskForPriceCache*
  1) "unreadAskForPriceCache:8748"
  2) "unreadAskForPriceCache:386"
  3) "unreadAskForPriceCache:37"

#查看key的类型
127.0.0.1:6379> type unreadAskForPriceCache:295
zset

#删除指定key
127.0.0.1:6379> del unreadAskForPriceCache:295
(integer) 1

#序列化给定 key
127.0.0.1:6379> dump userAccount:w256
"\x00\xc3A\x83B0\x11{\"employeeId\":305,\xe0\x00\x10\x0eCity\":\"9\",\"ding@\x03\x0fName\":null,\"shor\x80\x0f\x00\" !\x04isUse A\x001 \n\nnsertPerson \x1c\x000@\x1d`\x12\x01Ti\xe0\x01=\x05update\x
e0\x04$\x80\x12\xe0\x03$\x0bisShipper\":0`\r\x02ell\xe0\x01\x0c\x06torehou l\xa0\x1e\x04Manag\xa0\r\x05deptKe \xbf\x80\xac\x00n`\xb8\t\"\xe9\x82\xb1\xe6\xb5\xa9\xe6\xa5\xa0 \x93\x02cod \xcb\x04\"w256 \r\x06address\xc0/\x06postalC`\"\x80A\tofficePhon 5\x80\x12\x04mobil\xc0\x12\n\"1367696187@O\x04email\xc0( K\x00t\xe0\x005@\x99Ak\x02\"10A\x1a\x03regiA'\x80R\x06provinc\xe0\x00,\x06orderNo`\xe0\x02sex\xc0&\x03area@\x9c\xe0\x00\xaf\x02mem $\x80C@\x0b\x001\xe0\x03\x0c\x002\xe0\x03\x0c\x003\xe0\x03\x0c\x004\xe0\x03\x0c\x02num\xc0\x0eAT@\xa3\x02293A(\x04mpany@\x0f\x010}\b\x00\xbc%\xce\xe4yN\xdb\x95"

#反序列化给定的序列化值
127.0.0.1:6379> restore userAccout:256 0 "\x00\xc3A\x83B0\x11{\"employeeId\":305,\xe0\x00\x10\x0eCity\":\"9\",\"ding@\x03\x0fName\":null,\"shor\x80\x0f\x00\" !\x04isUse A\x001 \n\nnsertPerson \x1c\
x000@\x1d`\x12\x01Ti\xe0\x01=\x05update\xe0\x04$\x80\x12\xe0\x03$\x0bisShipper\":0`\r\x02ell\xe0\x01\x0c\x06torehou l\xa0\x1e\x04Manag\xa0\r\x05deptKe \xbf\x80\xac\x00n`\xb8\t\"\xe9\x82\xb1\xe6\xb5\xa9\xe6\xa5\xa0 \x93\x02cod \xcb\x04\"w256 \r\x06address\xc0/\x06postalC`\"\x80A\tofficePhon 5\x80\x12\x04mobil\xc0\x12\n\"1367696187@O\x04email\xc0( K\x00t\xe0\x005@\x99Ak\x02\"10A\x1a\x03regiA'\x80R\x06provinc\xe0\x00,\x06orderNo`\xe0\x02sex\xc0&\x03area@\x9c\xe0\x00\xaf\x02mem $\x80C@\x0b\x001\xe0\x03\x0c\x002\xe0\x03\x0c\x003\xe0\x03\x0c\x004\xe0\x03\x0c\x02num\xc0\x0eAT@\xa3\x02293A(\x04mpany@\x0f\x010}\b\x00\xbc%\xce\xe4yN\xdb\x95"OK
127.0.0.1:6379> get userAccount:256
"{\"employeeId\":220,\"employeeCity\":\"22\",\"dingdingName\":\"\",\"shorName\":\"\xe4\xbc\x81\xe9\xb9\x85\",\"isUsed\":0,\"insertPerson\":\"70\",\"insertTime\":null,\"updatePerson\":\"70\",\"updat
eTime\":null,\"isShipper\":0,\"isSeller\":0,\"isStorehouser\":0,\"isManager\":0,\"deptKey\":null,\"name\":\"\xe9\x82\xb1\xe6\xb5\xa9\xe6\xa5\xa0\",\"code\":\"256\",\"address\":\"\",\"postalCode\":null,\"officePhone\":\"\",\"mobilePhone\":\"13676961876\",\"email\":\"\",\"state\":null,\"deptId\":\"185\",\"region\":null,\"province\":null,\"orderNo\":0,\"sex\":null,\"areaCodes\":null,\"memo\":null,\"memo1\":null,\"memo2\":null,\"memo3\":null,\"memo4\":null,\"memonum\":null,\"userId\":208,\"companyId\":0}"

#批量删除所有匹配的key
redis-cli -a uqiauto -p 7001 -n 0 keys "unreadAskForPriceCache*" | xargs redis-cli -a uqiauto -p 7001 -n 0 del

参考链接

官网下载连接

https://redis.io/download

linux下配置
  1. 选择Stable(5.0)下的Download 5.0.0 链接进行下载 (stable是稳定版本,默认下载的是linux版本)
  2. 下载完毕后,通过 xftp 传输到 /opt 文件夹
  3. 进入opt文件夹,解压文件,进入到解压文件夹
    在这里插入图片描述

4.修改.conf 文件,1.将bind 127.0.0.1注释。2.关闭保护模式 protected-mode:yes改为no 3.daemonize 改为 yes(表示可以后台运行)
5.启动客户端指令 ./redis-server ./redis.conf 启动服务端 ./redis-cli

遇到的问题:

错误1:
Bad directive or wrong number of arguments
解决:
环境变量的问题,解决方案:1.添加环境变量 2 指令面前表明文件位置:进入文件所在文件夹,命令前加 ./

错误2:
由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败

解决:
关闭防火墙//这个是一次性的,如果重启了需要重新设置
systemctl stop firewalld.service

禁用防火墙//这个命令需要重启才能生效
systemctl disable firewalld.service

错误3:
redis由于目标计算机积极拒绝,无法连接

解决:
配置文件没有更改,ip为本机ip,非redisip

错误4:
主从配置,输入info,分别显示master slave角色,但是master的connected-slave一直为0

解决:
修改完配置文件后,要使用路径启动,redis-server /opt/redis-6.2.3/redis.conf(自己的路径),然后在启动redis-cli, 主从都要服务端和客户端. 然后info查看主服务器,set 和 get 命令检测。

如何配置环境变量

1.进入管理者模式输入密码(su)
2.查看现有环境变量(echo P A T H ) , 编 写 环 境 变 量 ( v i m / e t c / p r o f i l e ) 3. 编 写 增 添 环 境 变 量 的 路 径 , 并 保 存 。 ( 先 a 进 入 编 写 模 式 , 然 后 写 入 指 令 e x p o r t P A T H = " PATH),编写环境变量(vim /etc/profile) 3.编写增添环境变量的路径,并保存。(先 a 进入编写模式,然后写入指令 export PATH=" PATH),vim/etc/profile)3.aexportPATH="PATH:/opt/python38/bin" 按esc退出,输入 :wq! 进行强制保存)
4.保存环境变量(source /etc/profile)

组件redis集群
  1. master开启服务端和客户端.
  2. slave只开启服务端,输入指令slaveof ip port (主机的)
  3. 查看主从指令(info replication)
主节点挂掉,从节点自动升级成主节点

a) sentinel.conf配置文件,修改sentinel monitor host6379 127.0.0.1 6379 1,其它使用默认即可 host6379 主机名称,随便起 主机IP 端口 1表示选举,某个slaver得到超过1票则成成为Master节点
b) 启动sentinel: ./redis-sentinel …/sentinel.conf

参考连接
https://www.cnblogs.com/gossip/p/5992716.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值