Skip to content

官网地址和中文地址

redis-server - v
redis-server --version
  • 查看redis运行的进程
ps -aux | grep redis
ps -ef|grep redis
可以看到redis安装的目录

linux中直接使用(-p) pid
top -p 954
  • 启动
redis-server redis.conf
  • 修改redis.conf
//修改密码
requirepass  password

//开启守护
daemonize  yes

// 修改后重启
redis-server redis.conf
  • 进入redis
redis-cli

auth password // 一个节点实例

auth -p port password // 多个节点实例可以设置端口号进行登录
// 成功后进入
  • 使用命令
SET key
GET key

获取所有keys的数量

命令
dbsize

info memory
info cpu
info lastest_fork_usec

// 查看命令执行次数
info commandstats
// calls 总次数 usec 总耗时 usec_per_call 平均耗时
info lastest_fork_usec

CONFIG RESETSTAT  重置数据


- info 信息 https://www.likecs.com/show-204365642.html

- aof rdb
https://blog.csdn.net/weixin_42614150/article/details/125074667
- 实际操作
  - https://blog.csdn.net/weixin_44977377/article/details/123470054

 // used_memory_human

redis.conf 中daemonize yes 开启已守护进程运行

版本下载列表

安装启动

systemctl 启动redis

redis.conf

  • rdb
// 默认的rbd文件名
dbfilename dump.rdb

// 生成路径
dir /usr/local/redis/data6370
  • aof
// 启用aof

appendonly yes

appendfilename "appendonly.aof"

查找文件

// xxx 文件名
find . -name xxx
  • 如果想通过rdb文件来恢复,先关闭aof持久化功能,关闭redis,重启服务,并将要备份的rdb文件拷贝到 config get dir 路径下面
appendonly no //关闭aof

config get dir // 获取dump.rdb文件保存路径,

将要使用的rdb文件拷贝到此路径下,文件名要与下面的dbfilename名称保持一致,则重启时会重新加载此rdb文件

config get dbfilename 

shutdown // 关闭redis

systemctl restart redis.service // 重新启动redis

/usr/lib/systemd/system   // 服务所在位置路径
// ok查看数据恢复完成

防火墙

// 查看防火墙状态
rcfirewalld status

rcfirewalld start

rcfirewalld stop


// 重新加载文件
firewall-cmd --reload

firewall-cmd --zone=public --add-port=80/tcp --permanent

查看端口

netstat -an | grep 6379

切片集群搭建

配置说明
bind172.17.0.2绑定本机IP
port7001端口
cluster-enabledyes开启集群模式
cluster-config-file/etc/redis/node-7002.conf集群配置文件
cluster-node-timeout15000节点存活超时时长
daemonizeyes守护进程
pidfile/var/run/redis_7001.pidPID文件
dir/var/redis/7001数据目录
logfile/var/redis/log/7001.log日志文件
appendonlyyes开启AOF持久化

主从库以及从库再跟从库

  • 第一次从库肯定需要全量复制,后面可以采用增量复制
// 在从节点设置主节点ip地址和端口号
replicaof host port
masterauth password // 设置主节点登录密码

info replication  // 可以查看本节点的属性是从节点还是主节点

info stats // 查看

设置完毕后分别重启主节点和从节点

哨兵机制

  • 特殊模式下的Redis进程,主从库运行的同时,它也在运行。

  • 监控-选主-通知

  • 通过监控自动选择切换主库。

  • 配置文件名称

    • sentinel.conf

redis开启多线程

io-threads 2  
io-threads-do-reads yes

客户端缓存开启

通过telnet连接redis服务,并切换到resp3协议模式
hello 3


// 默认模式
// 开启
client tracking on
// 关闭
client tracking off


// 广播模式
// 开启广播模式
client tracking on bcast

// 可针对特定前缀的key进行缓存
client tracking on bcast prefix myprefix

分片集群

  • 至少三个主节点,可以再加三个从节点
  • 主节点发生异常后,迅速将从节点切换为主节点
  • 主节点和从节点都挂掉了,那没办法要进行手动处理了
  • redis-trib 工具可用于搭建集群
  • Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群
  • https://www.jb51.net/article/229037.htm

redis memory

redis slowlog慢查询

redis-cli
auth sunlight2010

// 获取前100个慢查询
slowlog get 100

// 打印所有的慢查询key
slowlog get
// 总共所有的慢查询
slowlog len

// 重置清空慢查询
slowlog reset

docker安装redis

// 查找redis可用版本
docker search  redis

// 拉取最新版的redis镜像
docker pull redis:latest

// 可查找到redis镜像
docker images

// 运行容器,指定映射端口号号容器名称  redis-1,并设置容器重启启动
docker run --restart always -itd --name redis-1 -p 6479:6479 redis
javascript
docker run -d \
--name mysql-2 \
-p 14006:3306 \
-v /usr/local/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /usr/local/docker/mysql/data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=sunlight2021 \
mysql

-v /usr/local/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf: 将容器中 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件挂载到宿主机的 /usr/local/docker/mysql/config/mysqld.cnf 文件上;
-v /usr/local/docker/mysql/data:/var/lib/mysql: 将容器中 /var/lib/mysql 数据目录挂载到宿主机的 /usr/local/docker/mysql/data 目录下
-d 后台运行程序,并返回容器ID
-p 指定映射端口, 主机端口:容器端口
-v /usr/local/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf 
// 将容器中的 mysql 配置文件复制到宿主机中指定路径下,路径你可以根据需要,自行修改
// 查看正在运行的redis容器
docker ps

// 进入容器链接redis
docker exec -it redis-1 /bin/bash

// docker mysql // https://juejin.cn/post/6844903848960606221

docker run -d
--name mysql-2
-p 4007:3306
-v /usr/local/docker/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
-v /usr/local/docker/mysql/data/mysql:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=sunlight2021
mysql

docker run -d \
--name mariadb-1 \
-p 13306:3306 \
-e MARIADB_ROOT_PASSWORD=sunlight2021 \
mariadb

monitor


// 监控所有的key操作
redis-cli 
auth sunlight2010

CONFIG SET 
monitor

// 监听过滤,只监测KEYS
redis-cli -a "sunlight2010"  monitor|grep 'KEYS'

// 监听过滤,除了KEYS都检测
redis-cli -a "sunlight2010"  monitor|grep -v 'KEYS'

// 还可以将检测写入到log文件中
redis-cli -a "sunlight2010" monitor|grep 'GET' > ttt.log

切换数据库

redis提供了16个数据库  通过索引0-15

select 1 切换到第二个数据库