Linux安装redis

    科技2022-07-16  131

    之前的项目一直用memcached,新的项目需要用到Redis

    下载地址:https://redis.io/download

    目前楼主下载的是最新的版本:redis-6.0.8版本

    1、解压

     tar -zxvf redis-6.0.8.tar.gz 

    2、移动目录

    mv /root/redis-6.0.8 /mnt/redis

    3、安装gcc环境

    由于redis是由C语言编写的,它的运行需要C环境,所以要先安装依赖包

    yum install cpp yum install binutils yum install glibc yum install glibc-kernheaders yum install glibc-common yum install glibc-devel yum install gcc-c++    yum install make

    升级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

    4、安装redis

    cd /mnt/redis

    编译:make

    安装:make PREFIX=/mnt/redis install

    PREFIX= 用于指定程序的安装路径,后续卸载redis可以直接用 rm -rf /mnt/redis就可以

    5、相关配置

    新建etc、db目录

    进入etc目录,新建redis.conf文件,内容如下

    #修改为守护模式 daemonize yes #设置进程锁文件 pidfile /mnt/redis/redis.pid #默认端口 port 6379 #客户端超时时间 timeout 300 #日志级别 loglevel debug

    #日志文件位置 logfile /mnt/redis/log-redis.log #设置数据库的数量,默认数据库为16,可以使用SELECT 命令在连接上指定数据库id databases 16

    ##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合 #save #Redis默认配置文件中提供了三个条件: save 900 1 save 300 10 save 60 10000

    #指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间, #可以关闭该选项,但会导致数据库文件变的巨大 rdbcompression yes

    #指定本地数据库文件名 dbfilename redisdb.rdb

    #指定本地数据库路径 dir /mnt/redis/db/

    #默认情况下Redis会异步的将数据导出到磁盘上 #但是如果断电或者redis进程出问题就会导致一段时间内的更新数据丢失(取决与配置项) #redis本身同步数据文件是按上面save条件来同步的,所以有些数据会在一段时间内只存在于内存中 appendonly no

    #Redis支持3种不同的模式: #no:不即时同步,由操作系统控制何时刷写到磁盘上,这种模式速度最快; #always:每次只写日志,速度较慢,但最安全; #everysec:每秒钟同步一次,折中的方案。 appendfsync everysec

    6、启动redis

    ./bin/redis-server etc/redis.conf

    tail -f  log-redis.log 

     WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1'

    内核参数overcommit_memory 

    它是 内存分配策略

    可选值:0、1、2。 0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

    解决方法,一下三种方法选一个执行就行

     (1)编辑/etc/sysctl.conf ,改vm.overcommit_memory=1,然后sysctl -p 使配置文件生效

      (2)sysctl vm.overcommit_memory=1

      (3)echo 1 > /proc/sys/vm/overcommit_memory

     

    7、redis测试

    ps -ef|grep redis

    redis-cli

     

    Processed: 0.008, SQL: 8