redis运维篇上篇

最近在学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 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配置调优

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

#添加系统配置
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) 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的发布订阅

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 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.mzph.cn/bicheng/5421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Excel】excel计算相关性系数R、纳什效率系数NSE、Kling-Gupta系数KGE

对于采用的数据: B2:B10958是观测值的所在范围 C2:C10958是模型计算值的所在范围 一、相关系数R是用来衡量两个变量之间线性关系强度和方向的统计量。在水文学和气象学中,常用的相关系数是皮尔逊相关系数(Pearson correlation coefficient&am…

智能体可靠性的革命性提升,揭秘知识工程领域的参考架构新篇章

引言:知识工程的演变与重要性 知识工程(Knowledge Engineering,KE)是一个涉及激发、捕获、概念化和形式化知识以用于信息系统的过程。自计算机科学和人工智能(AI)历史以来,知识工程的工作流程因…

【数据结构(邓俊辉)学习笔记】向量05——排序器

文章目录 0. 概述1.统一入口2. 起泡排序2.1 起泡排序(基础版)2.1.1 算法分析2.1.2 算法实现2.1.3 重复元素与稳定性2.1.4 复杂度分析 3. 归并排序3.1 有序向量的二路归并3.2 分治策略3.3 实例3.4 二路归并接口的实现3.5 归并时间3.6 排序时间 4.综合评价…

基于Matlab使用深度学习的多曝光图像融合

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在图像处理领域,多曝光图像融合技术是一种重要的技术,它可以将不同曝光条件下…

备忘录模式(行为型)

目录 一、前言 二、备忘录模式 三、总结 一、前言 备忘录模式(Memento Pattern)是一种行为型设计模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在之后将该对象恢复到原…

idea生成双击可执行jar包

我这里是一个生成xmind,解析sql的一个main方法,可以通过配置文件来修改有哪些类会执行 我们经常会写一个处理文件的main方法,使用时再去寻找,入入会比较麻烦,这里就可以把我们写过的main方法打成jar包,放到指定的目录来处理文件并生成想要的结果 1.写出我们自己的main方法,本地…

C语言.自定义类型:结构体

自定义类型:结构体 1.结构体类型的声明1.1结构体回顾1.1.1结构体的声明1.1.2结构体变量的创建和初始化 1.2结构体的特殊声明1.3结构体的自引用 2.结构体内存对齐2.1对齐规则2.2为什么存在内存对齐2.3修改默认对齐数 3.结构体传参4.结构体实现位段4.1什么是位段4.2位…

深入浅出DBus-C++:Linux下的高效IPC通信

目录标题 1. DBus简介2. DBus-C的优势3. 安装DBus-C4. 使用DBus-C初始化和连接到DBus定义接口和方法发送和接收信号 5. dbus-cpp 0.9.0 的安装6. 创建一个 DBus 服务7. 客户端的实现8. 编译和运行你的应用9. 瑞芯微(Rockchip)的 Linux 系统通常会自带 db…

OpenLayers入门①(引入的是一个高德地图)

OpenLayers入门&#xff08;一&#xff09; - 知乎 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&qu…

使用RTSP将笔记本摄像头的视频流推到开发板

一、在Windows端安装ffmpeg 1. 下载ffmpeg:下载ffmpeg 解压ffmpeg-master-latest-win64-gpl.zip bin 目录下是 dll 动态库 , 以及 可执行文件 ;将 3 33 个可执行文件拷贝到 " C:\Windows " 目录下 ,将所有的 " .dll " 动态库拷贝到 " C:\Windows\Sy…

期权交割对股市是好是坏?2024期权交割日一览表

期权交割是指期权买方在期权合约到期日或之前行使期权&#xff0c;卖方履行义务&#xff0c;按照约定的价格和数量与期权卖方进行标的物的买卖或现金结算的过程。 交割方式 期权交割可以分为实物交割和现金交割&#xff0c;具体取决于合约规定。 实物交割 实物交割是指期权买…

【深度学习基础(1)】什么是深度学习,深度学习与机器学习的区别、深度学习基本原理,深度学习的进展和未来

文章目录 一. 深度学习概念二. 深度学习与机器学习的区别三. 理解深度学习的工作原理1. 每层的转换进行权重参数化2. 怎么衡量神经网络的质量3. 怎么减小损失值 四. 深度学习已取得的进展五. 人工智能的未来 - 不要太过焦虑跟不上 一. 深度学习概念 先放一张图来理解下人工智能…

react中useReducer若有多个值怎么操作?

当 initialState 包含多个对象值时&#xff0c;你的 reducer 函数需要针对每个属性维护其各自的状态更新逻辑。reducer 函数应该返回一个新的状态对象&#xff0c;其中包含了所有必要的属性&#xff0c;保持未更改的属性不变&#xff0c;同时更新那些需要变化的属性。 下面是一…

Vue阶段练习:初始化渲染、获取焦点

阶段练习主要承接Vue 生命周期-CSDN博客 &#xff0c;学习完该部分内容后&#xff0c;进行自我检测&#xff0c;每个练习主要分为效果显示、需求分析、静态代码、完整代码、总结 四个部分&#xff0c;效果显示和准备代码已给出&#xff0c;我们需要完成“完整代码”部分。 练习…

手撕spring框架(1)

相关系列 java中spring底层核心原理解析&#xff08;1&#xff09;-CSDN博客 java中spring底层核心原理解析(2)-CSDN博客 在以上详细讲解了spring底层核心原理&#xff0c;今天我们就来手写一个spring框架。主流程是&#xff1a; 1、编写启动类 2、依据ComponentScan设置的va…

MySQL__三大日志

文章目录 &#x1f60a; 作者&#xff1a;Lion J &#x1f496; 主页&#xff1a; https://blog.csdn.net/weixin_69252724 &#x1f389; 主题&#xff1a;Redis__三大日志 ⏱️ 创作时间&#xff1a;2024年04月30日 ———————————————— 对于MySQL来说, 有…

Gateway Predicate断言(谓词)

是什么 Spring Cloud Gateway匹配路由作为Spring WebFlux HandlerMapping基础设施的一部分。 Spring Cloud Gateway包含许多内置的路由谓词工厂。 所有这些谓词都匹配HTTP请求的不同属性。 您可以使用逻辑 and 语句来联合收割机组合多个路由谓词工厂。 Predicate就是为了实现一…

TiDB系列之:TiDB数据库账号权限,创建TiDB账号,创建数据库,创建表,插入数据

TiDB系列之:TiDB数据库账号权限,创建TiDB账号,创建数据库,创建表,插入数据 一、TiDB账号权限二、创建TiDB账号三、创建数据库,创建表,插入数据一、TiDB账号权限 TiDB账号权限可以分为系统级权限和对象级权限两种,具体如下: 系统级权限: ALL PRIVILEGES:拥有所有权限…

基于EBAZ4205矿板的图像处理:03使用VIO调试输出HDMI视频图像

基于EBAZ4205矿板的图像处理&#xff1a;03使用VIO调试输出HDMI视频图像 在zynq调试时VIO是真的方便&#xff0c;特此写一篇博客记录一下 先看效果 项目简介 下面是我的BD设计&#xff0c;vtc用于生成时序&#xff0c;注意&#xff0c;2021.2的vivado的vtcIP是v6.2版本&…

Stm32CubeMX 为 stm32mp135d 添加 adc

Stm32CubeMX 为 stm32mp135d 添加 adc 一、启用设备1. adc 设备添加2. adc 引脚配置2. adc 时钟配置 二、 生成代码1. optee 配置 adc 时钟和安全验证2. linux adc 设备 dts 配置 bringup 可参考&#xff1a; Stm32CubeMX 生成设备树 一、启用设备 1. adc 设备添加 启用adc设…