1.安装
1. 下载 https://redis.io/
2. 解压:tar -zxvf redis-6.0.6.tar.gz
3. 安装gcc环境:yum install -y gcc
4. 进入解压缩目录执行如下命令 make MALLOC=libc
*错误的话升级一下gcc的版本
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash (临时生效)
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile (永久生效)
5. 安装 make install PREFIX=存放的目录
6. 进入bin目录运行 ./redis-server
--. 连接:redis-cli -h ip -p port (ip是redis所在的服务器,端口默认6379,不用参数h和p启动默认是本机的6379)
--. 将源码中的redis.conf 复制到安装的redis的目录
--. 开启远程连接: 将redis.conf中的bind 127.0.0.1改为 bind 0.0.0.0 ,然后重启(bin目录下使用 ./redis-server ../redis.conf)
--. 修改密码:在redis.conf中搜索requirepass,找到注释密码行,添加密码如下:
requirepass 密码 //注意,行前不能有空格
2. reids的持久化
RDB 快照
1. 手动开启 BGSAVE命令和SAVE命令
* BGSAVE ,redis开启一个新的进程,用来将当前的内容进行快照处理,快照生成之前可以进行其他操作
* SAVE ,redis主线程进行快照的生成,快照生成之前会阻塞其他操作
2. 自动开启
redis.conf下有三个save,可以按需修改
* save 900 1 = 900sec内有1个key的变化就做一次BGSAVE
* save 300 10 = 300sec内有10个key的变化就做一次BGSAVE
* save 60 10000 = 60sec内有10000个key的变化就做一次BGSAVE
--. 快照的名字:默认dump.rdb
* 修改redis.conf下的 dbfilename 可以改名字
--. 快照的位置:默认在redis的bin目录下
* 修改redis.conf下的 dir 可以改目录
AOF 日志
1. 开启
* 修改redis.conf下的 appendonly no 为 appendonly yes
2. 记录的频率
* 修改redis.conf下的 appendfsync 的值,有
-always,每次写操作都生成日志
-everysec,每1sec进行一次日志写入(推荐)
-no,由操作系统决定什么时候写入日志
3. aof重写
* aof中可能会有大量冗余信息,进行aof重写可以节省空间
* 修改redis.conf下的 (表示每当aof文件大于64mb且比上次重写后的aof文件大小大100%的时候会调用 BGREWRITEAOF 进行重写)
-auto-aof-rewrite-percentage 100
-auto-aof-rewrite-min-size 64mb
* 使用 BGREWRITEAOF 命令手动重写
LUA脚本
1. 命令:
* eval script nums keys values
- script 代表lua脚本
- nums 表示 key 和 value 的数量
- keys 表示key的集合
- values 表示value的集合
#举例
eval "return redis.call('mget',KEYS[1],KEYS[2])" 2 name age
eval "if redis.call('exists',KEYS[1])==1 then return redis.call('get',KEYS[1]) else return redis.call('set',KEYS[1],ARGV[1]) end " 1 name 12