centOS 下的redis的安装,持久化和LUA脚本

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
posted @ 2021-09-28 22:50  一只小白的进修路  阅读(109)  评论(0)    收藏  举报