Redis Install
refer to: https://redis.io/docs/getting-started/installation/install-redis-from-source/
wget https://download.redis.io/releases/redis-6.0.19.tar.gz
tar -zxvf redis-6.0.19.tar.gz
cd redis-6.0.19/
make
make install
默认的安装路径是在 /usr/local/bin目录下:
[root@VM-0-4-opencloudos redis-6.0.19]# cd /usr/local/bin
[root@VM-0-4-opencloudos bin]# ls
chardetect cloud-id cloud-init cloud-init-per jsonschema redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server
该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:
redis-cli:是redis提供的命令行客户端
redis-server:是redis的服务端启动脚本
redis-sentinel:是redis的哨兵启动脚本
修改配置文件:
cd /opt/Redis/redis-6.0.19
vim redis.conf
然后修改redis.conf文件中的一些配置:
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123456
Redis的其它常见配置:
# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 淘汰策略
maxmemory-policy allkeys-lru
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
启动redis,指定配置文件
cd /usr/local/bin/
redis-server /opt/Redis/redis-6.0.19/redis.conf
停止服务:
cd /usr/local/bin/
# 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务,
# 因为之前配置了密码,因此需要通过 -u 来指定密码
redis-cli -u 123456 shutdown
开启端口
systemctl start firewalld.service
firewall-cmd --state
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload
maxmemory-policy 一共有六种策略
noeviction:不会继续服务写请求( del 请求可以继续服务),读请求可以继续进行。这样可以保证不会丢失数据,但是会让线上的业务不能持续进行。这是默 认的淘汰策略。
volatile-lru: 尝试淘汰设置了过期时间的 key,最少使用的 key 优先被淘汰。 没有设置过期时间的 key不会被淘汰,这样可以保证需要持久化的数据不会突然丢失。
volatile-ttl:跟上面几乎一样,不过淘汰的策略不是 LRU,而是比较 key 的剩余寿命时的值,ttl越小越优先被淘汰。
volatile-random:跟上面几乎一样,不过淘汰的 key 是过期 key 集合中随机的 key。
allkeys-lru:区别于 volatile-lru,这个策略要淘汰的 key 对象是全体的 key 集 合,而不只是过期的 key 集合。这意味着一些没有设置过期时间的 key 也会被淘汰。
6 . allkeys-random:跟上面几乎一样,不过淘汰的 key 是随机的 key。
在一台机器上,安转多个Redis Server Instance
cd /opt/Redis/redis-5.0.5
cp redis.conf redis_16379.conf
修改如下属性
配置项 | 默认值 | 16379 |
---|---|---|
文件名 | redis.conf | redis_16379.conf |
port | 6379 | 16379 |
pidfile | /var/run/redis_6379.pid | /var/run/redis_16379.pid |
logfile 这一项可以不配置 | /var/log/redis/redis_6379.log | /var/log/redis/redis_16379.log |
dbfilename | dump.rdb | dump_16379.rdb |
111
cd /usr/local/bin/
redis-server /opt/Redis/redis-5.0.5/redis.conf
redis-server /opt/Redis/redis-5.0.5/redis_16379.conf
firewall-cmd --add-port=16379/tcp --permanent
firewall-cmd --reload
编写shell脚本,执行redis命令
[root@cacheserver ~]# cat RedisClear.sh
#!/bin/bash
redis-cli -h 218.94.128.34 -p 16379 -a long123456@HhRedis <<EOF
flushall
EOF
上面实现的功能是,登录redis,然后执行清理。
再来一个查看所有redis中key的脚本,如下:
#!/bin/bash
redis-cli -h 218.94.128.34 -p 16379 -a long123456@HhRedis <<EOF
SELECT 3
KEYS *
EOF