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 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"


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/586081.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【再探】设计模式—抽象工厂及建造者模式

抽象工厂模式和建造者模式都属于创建型模式。两者都能创建对应的对象,而创建者模式更侧重于创建复杂对象,将对象的创建过程封装起来,让客户端不需要知道对象的内部细节。 1 抽象工厂模式 需求: 在使用工厂方法模式时&#xff0…

TCP协议关于速率的优化机制-滑动窗口详解

在上一章中,我们讲述了TCP协议在传输过程中的可靠性http://t.csdnimg.cn/BsImO,这里衔接上一篇文章继续讲,TCP协议的特性,TCP协议写完之后就写,Http和Https等内容吧 1. 滑动窗口 这里的滑动窗口不是指算法里面的双指…

品牌百度百科词条需要什么资料?

品牌百度百科词条是一个品牌的数字化名片,更是品牌历史、文化、实力的全面展现。 作为一个相当拿得出手的镀金名片,品牌百度百科词条创建需要什么资料,今天伯乐网络传媒就来给大家讲解一下。 一、品牌基本信息:品牌身份的明确 品…

用 PyTorch 构建液态神经网络(LNN)

用 PyTorch 构建液态神经网络(LNN) 文章目录 什么是液态神经网络为什么需要液态神经网络LNN 与 RNN 的区别用 PyTorch 实现 LNNStep 1. 导入必要的库Step 2. 定义网络架构Step 3. 实现 ODE 求解器Step 4. 定义训练逻辑 LNN 的缺陷总结 什么是液态神经网络…

C语言-嵌入式-STM32:FreeRTOS说明和详解

Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。 注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX,RT-Thread 等这些都…

docker自定义java运行环境镜像

一、下载jre/jdk 压缩包,centos:7基础镜像 1、 下载jdk/dre 下载jdk或jre 官网下载 根据需求下载 jdk:SE Development Kit(开发环境) jre: SE Runtime Environment (运行环境)2、下载centos:7 # 下载centos7 docker镜像 docker pull centos:7#centos查看系统时间 …

面试经典算法题之双指针专题

力扣经典面试题之双指针 ( 每天更新, 每天一题 ) 文章目录 力扣经典面试题之双指针 ( 每天更新, 每天一题 )验证回文串收获 392. 判断子序列 验证回文串 思路 一: 筛选 双指针验证 class Solution { public:bool isPalindrome(string s) {// 所有大写字母 > 小写 去除非字母…

对比mongodb查询的执行计划,说一说组合索引的优化方案(上)

一、背景 Mongodb数据库,有个160w数据量规模的集合,字段多达几十个,随着需求的迭代,查询条件也是五花八门。 为了提高某个查询的效率,结果都以新增索引解决问题,最后多达16个索引。 这里仅贴出本文会提及…

引领农业新质生产力,鸿道(Intewell®)操作系统助力农业机器人创新发展

4月27日至29日,2024耒耜国际会议在江苏大学召开。科东软件作为特邀嘉宾出席此次盛会,并为江苏大学-科东软件“农业机器人操作系统”联合实验室揭牌。 校企联合实验室揭牌 在开幕式上,江苏大学、科东软件、上交碳中和动力研究院、遨博智能研究…

Spring Boot Admin

概述 Spirng Boot Admin 登录页面 Spring Boot Admin是一个用于管理Spring Boot应用的监控工具,它允许你查看和管理多个Spring Boot应用实例。用于应用信息进行界面化的展示,常常辅助我们开发人员快速查看服务运行状态在微服务架构中,Spring Boot Admin通…

中科院突破:TalkingGaussian技术实现3D人脸动态无失真,高效同步嘴唇运动!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! 引言:探索高质量3D对话头像的新方法 在数字媒体和虚拟互动领域,高质量的3D对话头像技术正变得日益重要。这种技术能够在虚拟现实、电影…

谷粒商城实战(020 RabbitMQ-消息确认)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第258p-第p261的内容 消息确认 生产者 publishers 消费者 consumers 设置配置类 调用api 控制台 抵达brocker 代理 新版本ReturnCallbac…

【webrtc】MessageHandler 8: 基于线程的消息处理:处理音频输入输出断开

m98代码,看起来m114 去掉了MessageHandler :音频的录制和播放 都使用了on message,但只是用来通知并处理流的断开的。AAudioRecorder AAudioRecorder 处理流断开 OnErrorCallback :有可能 错误回调是别处来的,是其他线程, 但是这个错误的处理要再自己的线程执行: 音频播…

北京大学肖臻老师《区块链技术与应用》P14(ETH概述)和P15(ETH账户)

1️⃣ 参考 北京大学肖臻老师《区块链技术与应用》 P14 - ETH概述篇P15 - ETH账户篇 1️⃣4️⃣ETH概述 ① 比特币与以太坊的对比 比特币(区块链 1.0)以太坊(区块链 2.0)出块时间大约10 min十几秒mining puzzle计算密集型Memo…

【计算智能】基本遗传算法在优化问题中的应用与实验【理论到程序】

文章目录 1. 引言:遗传算法简介2. 基本遗传算法(SGA)2.1 基本遗传算法的构成要素1. 染色体编码2. 适应度函数3. 遗传算子 2.2 实验设计与方法1. 算法流程2. 伪代码3. python实现1. 导入模块2. 目标函数 f(x)3 初始化种群4. 计算适应度5. 选择…

Django后台项目开发实战二

我们的需求是开发职位管理系统 三个功能: 管理员发布职位候选人能浏览职位用户能投递职位 第二阶段 创建应用 jobs,实现职位数据的建模 python manage.py startapp jobs 然后再 setting .py 注册应用,只需添加应用名称到最后一行 INST…

VTK —— 二、教程六 - 为模型加入3D微件(按下i键隐藏或显示)(附完整源码)

代码效果 本代码编译运行均在如下链接文章生成的库执行成功,若无VTK库则请先参考如下链接编译vtk源码: VTK —— 一、Windows10下编译VTK源码,并用Vs2017代码测试(附编译流程、附编译好的库、vtk测试源码) 教程描述 本…

探索未来道路:智慧高速系统架构的革命性进步

随着科技的飞速发展,智慧高速系统架构正在成为道路交通领域的一项重要创新。这一系统结合了先进的信息技术和智能化设备,为高速公路提供了全新的管理和服务模式,极大地提升了交通运输效率和安全性。本文将深入探讨智慧高速系统架构的革命性进…

ping命令操作记录

1,ping 主机可查看主机是否在线 2,ping -a参数,解析主机的名称 3,ping -r 跟踪打印路由信息 ping命令的作用:确认目标主机是否存活,确定网络是否畅通 ping的原理:ping发送ICMP(互联…

【算法】【贪心算法】【leetcode】870. 优势洗牌

题目地址:https://leetcode.cn/problems/advantage-shuffle/description/ 题目描述: 给定两个长度相等的数组 nums1 和 nums2,nums1 相对于 nums2 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。 返回 nums1 的任意排列&…
最新文章