1、前置环境
服务器版本:CentOS Linux release 7.9.2009 (Core)
配置:2核2G
关闭防火墙和selinux
redis6的下载的地址:https://download.redis.io/releases/redis-6.2.9.tar.gz
1.1、安装依赖项
[root@docker ~]# yum install -y vim lrzsz gcc gcc-c++ make cmake tar openssl openssl-devel
2、redis编译安装
2.1、下载redis6
[root@redis ~]# wget https://download.redis.io/releases/redis-6.2.9.tar.gz
2.2、编译和安装
# 解压至/usr/local/src/
[root@redis ~]# tar -zxf redis-6.2.9.tar.gz -C /usr/local/src/
# 进入/usr/local/src/redis-6.2.9
[root@redis ~]# cd /usr/local/src/redis-6.2.9/
# 编译和安装redis
[root@redis redis-6.2.9]# make && make install
# 复制redis的配置文件redis.conf到/etc目录
[root@redis redis-6.2.9]# cp redis.conf /etc/
2.3、检查是否安装完成
# 查看redis的执行文件
[root@redis redis-6.2.9]# ls /usr/local/bin/redis-*
# 查看redis的版本信息
[root@redis redis-6.2.9]# redis-server -v
如图:
3、redis配置和参数调优
3.1、redis.conf配置更改
# 备份配置文件
[root@redis redis-6.2.9]# cp /etc/redis.conf /etc/redis.conf.bak
# 去掉配置文件内容的空格和注释
[root@redis redis-6.2.9]# sed -i '/^#/d;/^$/d' /etc/redis.conf
# 修改redis.conf
[root@redis redis-6.2.9]# vim /etc/redis.conf
# 更改以下内容
bind 0.0.0.0 #绑定服务器的所有网卡
port 6379
dir /data/redis
requirepass 666666 #添加
pidfile "redis.pid"
logfile "redis.log"
daemonize no # 这个设置为yes,会跟systemd守护进程冲突
3.2、设置systemd管理redis
# 创建和添加内容
[root@redis redis-6.2.9]# vim /etc/systemd/system/redis.service
# 添加以下内容
[Unit]
Description=redis-server
After=network.target
[Service]
# ExecStart需要按照实际情况修改成自己的地址
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 重新加载
[root@redis redis-6.2.9]# systemctl daemon-reload
# 启动redis和设置开机启动
[root@redis redis-6.2.9]# systemctl start redis
[root@redis redis-6.2.9]# systemctl enable redis
查看redis的运行状态,如图:
3.3、参数调优
可以通过查看redis.log日志,进行修改相应的参数。
[root@redis redis-6.2.9]# cat /data/redis/redis.log
[root@docker redis]# vim /etc/security/limits.conf
* - nofile 65535 //添加
[root@docker redis]# vim /etc/sysctl.conf
net.core.somaxconn = 10240
vm.overcommit_memory = 1
[root@docker redis]# sysctl -p //使上述配置生效
3.4、连接redis
# 666666为在redis.conf设置的redis密码
[root@redis redis-6.2.9]# redis-cli -a 666666
效果如图:
4、redis常用的数据类型和基本操作
4.1、客户端redis-cli登录redis
- redis-cli # 默认为127.0.0.1:6379
- redis-cli -h redis的IP地址
- redis0cli -h xxx -p xxx
4.2、redis登录认证
- 登录后再认证
- 登录的时候直接认证
4.3、redis的常用数据类型
字符串
redis的string可以包含任何数据。
命令:
set (key) (value)
:设置键值对get(key)
:获取key对应的valuedel (key)
:删除key- keys * :显示所有的key
列表
列表是有顺序的,可写入重复的数据。
命令:
- Rpush key value # 从列表的右侧依次写入
- Lpush key value #从列表的左侧依次写入
- Lrange key start stop #获取列表的值,start为开始的序号,stop为结束的序号
- Llen key #获取列表的长度
- Lrem key num value #删除列表里对应的值
集合
集合是无顺序的,没有重复的值。
命令:
- Sadd key value #在集合里写入
- Smembers num #获取集合里的所有值
- Srem key value #删除集合里的值
哈希
哈希的值是以k-v形式储存。
命令:
- hset key field value # 创建hash
- hgetall key #获取hash里所有的键值对
- hget key #获取单个键值对里的value
- hdel key field #删除单个键值对
- del key #删除整个hash
5、redis切换库和运维监控命令
5.1、通过select切换数据库
redis的数据库默认是16个,通过select命令来进行切换,默认数据库是第0个数据库,每个数据库是独立的 。
5.2、redis运维监控命令
查看key命令
randomkey : 随机获得一个key
keys * : 查看所有key值,如果key数量特别大的时候,容易卡死阻塞
scan 0 : 每次获取11个key,循环获取,直到获取所有key。
监控命令
1、redis-cli -a redis密码 --stat #监控redis状态
keys : redis的key总数量
men : 占用内存
clients : 客户端的数量
blocked :
requests : 请求数量
connections :连接数
2、redis-cli -a 666666 monitor #监控redis操作,增加、删除等操作记录
3、 redis-cli -a 666666 info #获取redis的info数据
4、 redis-cli -a 666666 info CPU #获取redis的info数据的单独模块
6、redis配置的动态更新
查看所有配置:config get *
获取某个配置:config get 配置项
更新某个配置:config set 配置项
永久写入配置:config rewrite
不执行此语句的话,已更改的配置会在redis服务重启的时候失效。
7、redis的慢日志和key的有效期
config get slow* #查看慢日志的配置
slowlog-max-len : 最多记录多少条数
slowlog-log-slower-than : 默认超过10毫秒就会记录
slowlog get #查询慢日志 ,默认查询10条
slowlog get 5 #获取5条
slowlog len #查看慢日志的条数
slowlog reset #清空慢日志
8、redis禁用危险命令和压测工具介绍
禁用危险命令
[root@redis redis-6.2.9]# vim /etc/redis.conf
# 添加以下内容,禁用危险命令
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""
rename-command CONFIG ""
压测工具
1、redis-benchmark
redis-benchmark是redis自带的测压工具,通过命令进行模拟测试,命令格式:
redis-benchmark -h host -p port -c connections -n requests
host为redis服务器的IP,port为redis的端口,connections为并发连接数,requests为请求数量。
redis-benchmark会基本对redis里的每一个命令都进行压测一遍。
可以通过把测试结果输出到一个文件里,方便查看:redis-benchmark | tee redis-chk.txt