redis运维篇上篇

发布于:2024-05-04 ⋅ 阅读:(26) ⋅ 点赞:(0)

最近在学redis,由于笔者是学运维的,所以推荐学习运维的小伙伴参考,希望对大家有帮助!

redis运维篇下篇:http://t.csdnimg.cn/83sQ1

附加redis多用户管理:http://t.csdnimg.cn/DY3yx

目录

一.安装redis

     二.redis配置调优

三.启用系统管理redis

四.redis客户端认证登录和退出

五.redis的常用数据类型及其操作

5.1字符串

5.2列表

5.3集合

5.4哈希

六.redis的发布订阅

七.redis的不同库切换和运维监控命令

7.1redis的数据库

7.2redis的监控 

八.redis配置的动态更新


一.安装redis

1.关闭防火墙和selinux
systemctl stop firewalld
setenforce 0

2.安装编译工具
yum install -y vim lrzsz gcc gcc-c++ make tar openssl-devel cmake

3.下载redis压缩包
cd /usr/local/bin/
wget http://download.redis.io/releases/redis-6.2.1.tar.gz

4.解压
tar -zxvf redis-6.2.1.tar.gz

5.进入解压目录
cd redis-6.2.1

6.编译安装
make -j2 && make install

7.检查是否安装成功
redis-server -v

8.将redis的配置文件移动到/etc/下
cp redis.conf /etc/

二.redis配置调优

1.备份redis的配置文件
cd
cp /etc/redis.conf /etc/redis.conf.bak

2.删除配置文件中的#和空格
sed -i '/^#/d;/^$/d' /etc/redis.conf

3.创建/data/redis目录存放数据
mkdir -p /data/redis

4.修改redis配置文件,在文件中修改以下配置
vim /etc/redis.conf
bind 0.0.0.0	#绑定到所有网络接口的设置,允许来自任何IP地址的连接
dir /data/redis
requirepass redispwd	#Redis服务器的密码
pidfile "redis.pid"		#Redis服务器的PID文件,用于记录Redis进程的PID
logfile "redis.log"		#Redis服务器的日志文件,用于记录Redis的运行日志
daemonize yes		#指示Redis服务器在后台运行,而不是在前台运行

5.启动服务
redis-server /etc/redis.conf
ps -ef | grep redis

6.调整redis启动的系统参数
调整文件句柄数
[root@bogon ~]# vim /etc/security/limits.conf 
* - nofile 65535  
[root@bogon ~]#reboot     #退出重新登录生效
[root@bogon ~]#ulimit -n #查看文件句柄

7.内核参数修改
vim /etc/sysctl.conf
net.core.somaxconn = 10240   
vm.overcommit_memory = 1  #防止redis的数据丢失
sysctl -p	#刷新生效 

8.重启redis,发现警报消失
pkill redis
redis-server /etc/redis.conf
tail -f /data/redis/redis.log 



三.启用系统管理redis

#添加系统配置
vim /usr/lib/systemd/system/redis.service   

[Unit]
Description=redis
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
[Install]
WantedBy=multi-user.target



#使配置生效
pkill redis             # 终止所有名为redis的进程
systemctl daemon-reload # 重新加载系统服务配置
systemctl start redis   # 启动名为redis的系统服务
ps -ef | grep redis     # 查找正在运行的redis进程
systemctl status redis  # 获取redis系统服务的状态信息

四.redis客户端认证登录和退出

方式一:
redis-cli -a redispwd	#使用redis-cli连接到Redis服务器,并使用密码进行认证身份

方式二:
redis-cli
auth redispwd	#登录后验证身份

退出redis:
>quit

五.redis的常用数据类型及其操作

数据类型:
                字符串、列表、集合、哈希、发布和订阅

5.1字符串

字符串操作:
127.0.0.1:6379> set name aaa	#增加key并赋值
OK
127.0.0.1:6379> keys *			#显示所有的key
1) "name"
2) "k1"
127.0.0.1:6379> get name		#获取key的值
"aaa"
127.0.0.1:6379> set name bbb	#重新给key赋值
OK
127.0.0.1:6379> del name		#删除key
(integer) 1



大小写问题:
127.0.0.1:6379> GET name	#命令不区分大小写
127.0.0.1:6379> get Name	#key区分大小写


非交互式操作redis
redis-cli -a redispwd set nnme bcc
redis-cli -a redispwd get nnme
redis-cli -a redispwd del nnme

5.2列表

列表特点:

                列表是有顺序的
                列表可写入重复的数据

向列表中添加数据:

rpush右添加
127.0.0.1:6379> rpush names s1		#依次在列表右侧添加数据
(integer) 1
127.0.0.1:6379> rpush names s2
(integer) 2
127.0.0.1:6379> rpush names s3
(integer) 3
127.0.0.1:6379> rpush names s4
(integer) 4
127.0.0.1:6379> rpush names s1		#向列表中添加一个重复的数据
127.0.0.1:6379> lrange names 0 -1	#查看列表中添加的所有数据

列表读取说明:
0:值一,1:值二,-1:最后一个值,-2:倒数第二个值


lpush左添加
127.0.0.1:6379> lpush names s1		#依次在列表左侧添加数据
(integer) 1
127.0.0.1:6379> lpush names s2
(integer) 2
127.0.0.1:6379> lpush names s3
(integer) 3
127.0.0.1:6379> lpush names s4
(integer) 4
127.0.0.1:6379> lpush names s1		#向列表中添加一个重复的数据
127.0.0.1:6379> lrange names 0 -1	#查看列表中添加的所有数据


删除redis列表中的元素:
127.0.0.1:6379> lrem names2 1 s1	#1代表移除一个元素,因为列表元素可重复
127.0.0.1:6379> lrange names2 0 -1	#0代表移除所有指定元素的个数

列表弹出元素:
>lpop names2	#向左弹出元素
>rpop names2	#向右弹出元素

5.3集合

特点:元素无顺序,不重复

#创建集合并添加元素
127.0.0.1:6379> sadd jh j1		
(integer) 1
127.0.0.1:6379> sadd jh j2
(integer) 1
127.0.0.1:6379> sadd jh j3
(integer) 1
127.0.0.1:6379> sadd jh j4
(integer) 1
127.0.0.1:6379> sadd jh j1		#添加一个重复的元素失败
(integer) 0
127.0.0.1:6379> smembers jh	#列出集合中的所有元素


集合的删除:
127.0.0.1:6379> srem jh j1			#删除集合中的元素j1
127.0.0.1:6379> spop jh			#从集合中随机弹出一个元素
127.0.0.1:6379> sismember jh j1		#判断元素是否在集合中,返回0不在,1在

5.4哈希

特点:以键值对形式存储

Hash写入:
127.0.0.1:6379> hset haxi name ha	#创建一个hash表,名为haxi,再往里面存值,以键值对形式
(integer) 1
127.0.0.1:6379> hset haxi location bj
(integer) 1
127.0.0.1:6379> hset haxi age 18
(integer) 1

hash获取值
127.0.0.1:6379> hgetall haxi			#获取所有key的值
127.0.0.1:6379> hgetall haxi	 name	#获取单个key的值

hash删除
127.0.0.1:6379> hdel haxi age		#删除hash名字里的单个key的值
127.0.0.1:6379> del haxi			#删除整个hash

六.redis的发布订阅

127.0.0.1:6379> subscribe fabu							#订阅一个频道
127.0.0.1:6379> publish fabu "name shi,age 20,sex boy"		#向频道中发送数据,订阅过该频道的窗口都能收到该数据
(integer) 1

七.redis的不同库切换和运维监控命令

7.1redis的数据库


1)redis有多少个数据库
16个数据库
[root@bogon ~]# grep databases /etc/redis.conf
databases 16
2)redis数据库的切换
>select 0
>select 1
>select 15
3)redis的各个数据库相互独立

redis的监控命令
1)查看key
>keys *		#查看所有的key,数据量大的时候容易阻塞
>scan 0		#每次获取11个key,直到获取所有的key,编号从0开始,下一次获取时,按照提示的编号输入scan后的值
			当编号再次为0时,获取完成所有数据


2)redis-cli -a redispwd --stat	#监控redis的状态
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections          
55         878.34K  2       0       317 (+0)            116         
55         878.34K  2       0       318 (+1)            116        

显示多少个key,内存占多少,客户端有多少,请求数是多少,连接数是多少

通过增加客户端及key的操作可以发现变化


3)redis-cli -a redispwd monitor		#监控数据操作
操作的命令,增加,删除等都会监控到

4)redis-cli -a redispwd info		#查看redis的相关信息
包含Server、Clients、Memory、CPU、Cluster等相关信息

7.2redis的监控 

1)查看key
>keys *		#查看所有的key,数据量大的时候容易阻塞
>scan 0		#每次获取11个key,直到获取所有的key,编号从0开始,下一次获取时,按照提示的编号输入scan后的值
			当编号再次为0时,获取完成所有数据


2)redis-cli -a redispwd --stat	#监控redis的状态
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections          
55         878.34K  2       0       317 (+0)            116         
55         878.34K  2       0       318 (+1)            116        

显示多少个key,内存占多少,客户端有多少,请求数是多少,连接数是多少

通过增加客户端及key的操作可以发现变化


3)redis-cli -a redispwd monitor		#监控数据操作
操作的命令,增加,删除等都会监控到

4)redis-cli -a redispwd info		#查看redis的相关信息
包含Server、Clients、Memory、CPU、Cluster等相关信息

八.redis配置的动态更新

更新密码
1)重启更新密码
vim /etc/redis.conf
requirepass redispwd666

2)动态更新密码
>config get requirepass			#动态获取原始密码
>config set requirepass redispwd	#动态重新设置密码
>config rewrite					#写入配置文件,重启生效

查看redis相关的连接数
>info clients


利用config对配置文件修改
127.0.0.1:6379> config get maxclients	#修改redis的最大连接数
1) "maxclients"
2) "10000"
127.0.0.1:6379> config set maxclients 2000
OK
127.0.0.1:6379> config get maxclients
1) "maxclients"
2) "2000"



网站公告

今日签到

点亮在社区的每一天
去签到