redis运维篇上篇

devtools/2024/10/19 2:19:08/

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

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

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

目录

redis-toc" style="margin-left:0px;">一.安装redis

     二.redis配置调优

redis-toc" style="margin-left:0px;">三.启用系统管理redis

redis%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%A4%E8%AF%81%E7%99%BB%E5%BD%95%E5%92%8C%E9%80%80%E5%87%BA-toc" style="margin-left:0px;">四.redis客户端认证登录和退出

redis%E7%9A%84%E5%B8%B8%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%8F%8A%E5%85%B6%E6%93%8D%E4%BD%9C-toc" style="margin-left:0px;">五.redis的常用数据类型及其操作

5.1字符串

5.2列表

5.3集合

5.4哈希

redis%E7%9A%84%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85-toc" style="margin-left:0px;">六.redis的发布订阅

redis%E7%9A%84%E4%B8%8D%E5%90%8C%E5%BA%93%E5%88%87%E6%8D%A2%E5%92%8C%E8%BF%90%E7%BB%B4%E7%9B%91%E6%8E%A7%E5%91%BD%E4%BB%A4-toc" style="margin-left:0px;">七.redis的不同库切换和运维监控命令

redis%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93-toc" style="margin-left:40px;">7.1redis数据库

redis%E7%9A%84%E7%9B%91%E6%8E%A7%C2%A0-toc" style="margin-left:40px;">7.2redis的监控 

redis%E9%85%8D%E7%BD%AE%E7%9A%84%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B0-toc" style="margin-left:0px;">八.redis配置的动态更新


redis">一.安装redis

1.关闭防火墙和selinux
systemctl stop firewalld
setenforce 02.安装编译工具
yum install -y vim lrzsz gcc gcc-c++ make tar openssl-devel cmake3.下载redis压缩包
cd /usr/local/bin/
wget http://download.redis.io/releases/redis-6.2.1.tar.gz4.解压
tar -zxvf redis-6.2.1.tar.gz5.进入解压目录
cd redis-6.2.16.编译安装
make -j2 && make install7.检查是否安装成功
redis-server -v8.将redis的配置文件移动到/etc/下
cp redis.conf /etc/

redis%E9%85%8D%E7%BD%AE%E8%B0%83%E4%BC%98">二.redis配置调优

1.备份redis的配置文件
cd
cp /etc/redis.conf /etc/redis.conf.bak2.删除配置文件中的#和空格
sed -i '/^#/d;/^$/d' /etc/redis.conf3.创建/data/redis目录存放数据
mkdir -p /data/redis4.修改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 redis6.调整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">三.启用系统管理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%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AE%A4%E8%AF%81%E7%99%BB%E5%BD%95%E5%92%8C%E9%80%80%E5%87%BA">四.redis客户端认证登录和退出

方式一:
redis-cli -a redispwd	#使用redis-cli连接到Redis服务器,并使用密码进行认证身份方式二:
redis-cli
auth redispwd	#登录后验证身份退出redis:
>quit

redis%E7%9A%84%E5%B8%B8%E7%94%A8%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%8F%8A%E5%85%B6%E6%93%8D%E4%BD%9C">五.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) 1hash获取值
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%E7%9A%84%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85">六.redis的发布订阅

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

redis%E7%9A%84%E4%B8%8D%E5%90%8C%E5%BA%93%E5%88%87%E6%8D%A2%E5%92%8C%E8%BF%90%E7%BB%B4%E7%9B%91%E6%8E%A7%E5%91%BD%E4%BB%A4">七.redis的不同库切换和运维监控命令

redis%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93">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等相关信息

redis%E7%9A%84%E7%9B%91%E6%8E%A7%C2%A0">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%E9%85%8D%E7%BD%AE%E7%9A%84%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B0">八.redis配置的动态更新

更新密码
1)重启更新密码
vim /etc/redis.conf
requirepass redispwd6662)动态更新密码
>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"


http://www.ppmy.cn/devtools/27435.html

相关文章

RTMP 直播推流 Demo(二)—— 音频推流与视频推流

音视频编解码系列目录: Android 音视频基础知识 Android 音视频播放器 Demo(一)—— 视频解码与渲染 Android 音视频播放器 Demo(二)—— 音频解码与音视频同步 RTMP 直播推流 Demo(一)—— 项目…

SpringMVC进阶(自定义拦截器以及异常处理)

文章目录 1.自定义拦截器1.基本介绍1.说明2.自定义拦截器的三个方法3.流程图 2.快速入门1.Myinterceptor01.java2.FurnHandler.java3.springDispatcherServlet-servlet.xml配置拦截器4.单元测试 3.拦截特定路径1.拦截指定路径2.通配符配置路径 4.细节说明5.多个拦截器1.执行流程…

【QT教程】QT6 QML性能优化入门与进阶

QT6 QML性能优化入门与进阶 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频…

React中,双花括号和单花括号的区别(四)

在React中,花括号 {} 用于在JSX中插入JavaScript表达式。 单花括号 {}:通常用于在JSX中嵌入JavaScript表达式。这些表达式可以是变量、函数调用、对象字面量、数组等。React会评估这些表达式,并将结果插入到JSX中。 例如,在你的代…

Microsoft Universal Print 与 SAP 集成教程

引言 从 SAP 环境打印是许多客户的要求。例如数据列表打印、批量打印或标签打印。此类生产和批量打印方案通常使用专用硬件、驱动程序和打印解决方案来解决。 Microsoft Universal Print 是一种基于云的打印解决方案,它允许组织以集中化的方式管理打印机和打印机驱…

c++ 判断点和折线 距离

目录 c 一个点a &#xff0c;一条折线(n个点)b&#xff0c;求折线b上 与a x相同时 y方向的差异 判断点是否在折线下方&#xff1a; c 一个点a &#xff0c;一条折线(n个点)b&#xff0c;求折线b上 与a x相同时 y方向的差异 #include <iostream> #include <vector&g…

上位机图像处理和嵌入式模块部署(树莓派4b与mcu固件升级)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 在一个系统当中&#xff0c;可能不止需要树莓派4b一个设备。有的时候还需要搭载一个mcu&#xff0c;做一些运动控制的事情。比如说&#xff0c;图像…

Linux从入门到精通

第一章> 1、文件、用户、组、权限 2、Linux运行级别指定 3、文件目录指令 4、基础指令 第二章> 5、搜索、过滤、压缩 6、Shell脚本 7、配置JDK …