Linux下安装Redis

Linux下安装Redis

1、 获取redis

[root@localhost ~]# cd /usr/local/
[root@localhost local]# wget https://download.redis.io/releases/redis-6.0.9.tar.gz

2、 解压

[root@localhost local]# tar xzf redis-6.0.9.tar.gz

3、 进入目录并编译

[root@localhost local]# cd redis-6.0.9
[root@localhost redis-6.0.9]# make
# 因为系统默认的gcc版本为4.4.7,make时会导致失败
make[2]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2'
make[1]: *** [stage1-bubble] 错误 2
make[1]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2'
make: *** [all] 错误 2
# 解决版本:升级gcc版本到5.3以上

4、进入src目录安装redis

[root@localhost redis-6.0.9]# cd src
[root@localhost src]# make install PREFIX=/usr/local/redis
# 安装在/usr/local/redis目录下

5、在redis目录下创建etc目录

[root@localhost local]# mkdir /usr/local/redis/etc

6、复制redis.conf文件到etc下

[root@localhost local]# cd redis-6.0.9
[root@localhost redis-6.0.9]# mv redis.conf /usr/local/redis/etc

7、配置redis

我们在配置文件redis.conf中进行相关的配置(在redis安装路径的etc目录下)

[root@localhost redis-6.0.9]# cd ../redis/etc/
[root@localhost etc]# vi redis.conf
按‘i’进入编辑模式,按‘Esc’,输入‘:set nu’显示所有行号
按‘i’进入编辑模式,按‘Esc’,输入‘:/单词’查找自己需要的单词
进入文档后,输入行号,按‘Shift+G’定位到某一行

1 设置后台启动

在 GENERAL下,将daemonize no改为yes(大约224行)
在这里插入图片描述

2 设置远程访问权限

在NETWORK下,将 bind 127.0.0.1注掉(大约68行),将 protected-mode yes改为no(大约87行)
在这里插入图片描述

3 设置访问密码

在SECURITY下,将 requirepass foobared的注释去掉(大约790行),将 foobared 改为自己的密码
在这里插入图片描述

4 增加redis连接数据库都的个数

redis默认支持16个数据库,可以通过调整redis的配置文件redis/redis.conf中的databases来修改这一个值,设置完毕后重启redis便完成配置
在 GENERAL 下,将databases 16改成自己需要的数字(大约在275行)
在这里插入图片描述

redis配置参数说明

属性说明
daemonize如果值是“yes”,则启动服务的时候是后台守护进程形式,如果值是“no”,则相反
pidfile指定存储Redis进程号的文件路径
port指定当前Redis服务的端口,默认为6379
bind 127.0.0.1绑定的主机地址
tcp-backlog此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度, 当然此值必须不大于Linux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linux的默认参数值是128。当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一起参考设定。
timeout客户端和Redis服务端的连接超时时间,默认是0,表示永不超时
tcp-keepalive如果值非0,单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是60S
loglevelRedis总共支持四个级别:debug、verbose、notice、warning。Debug:
记录很多信息,用于开发和测试;
Varbose:有用的信息,不像debug会记录那么多;
Notice:普通的verbose,常用于生产环境;
Warning:只有非常重要或者严重的信息会记录到日志;默认是notice级别。
logfile日志的存储路径
databases可用的数据库数,默认值为16,默认数据库为0,数据库范围在0-(database-1)之间,个人觉得DB的概念类似于命名空间
save指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合;
保存数据库快照信息到磁盘,其对应的值有两个,比如save 300 10表示:300秒内至少有300个key被改变时,触发保存信息到磁盘的事件。
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
stop-writes-on-bgsave-error当持久化出现错误之后,是否继续提供写服务
rdbcompression持久化到RDB文件时,是否压缩,“yes”为压缩,“no”则反之
rdbchecksum读取和写入的时候是否支持CRC64校验,默认是开启的
dbfilename镜像文件的名字
dir指定本地数据库存放目录;当前工作目录,配置文件和镜像文件等都在此目录下
masterauth设置访问master服务器的密码
slaveof设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
slave-serve-stale-data当slave服务器和master服务器失去连接后,或者当数据正在复制传输的时候,如果此参数值设置“yes”,slave服务器可以继续接受客户端的请求,否则,会返回给请求的客户端如下信息“SYNC with master in progress”
requirepass
foobared
设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH password命令提供密码,默认关闭
maxclients 128设置同一时间最大客户端连接数,默认无限制;
Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。
当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
slave-read-only是否允许slave服务器节点只提供读服务
repl-disable-tcp-nodelay指定向slave同步数据时,是否禁用socket的NO_DELAY选 项。
若配置为“yes”,则禁用NO_DELAY,则TCP协议栈会合并小包统一发送,这样可以减少主从节点间的包数量并节省带宽,但会增加数据同步到 slave的时间。
若配置为“no”,表明启用NO_DELAY,则TCP协议栈不会延迟小包的发送时机,这样数据同步的延时会减少,但需要更大的带宽。
通常情况下,应该配置为no以降低同步延时,但在主从节点间网络负载已经很高的情况下,可以配置为yes。
slave-priority指定slave的优先级。在不只1个slave存在的部署环境下,当master宕机时,Redis Sentinel会将priority值最小的slave提升为master。需要注意的是,若该配置项为0,则对应的slave永远不会自动提升为master。
appendonly开启append only 模式之后,redis 会把所接收到的每一次写操作请求都追加到appendonly.aof 文件中,当redis 重新启动时,会从该文件恢复出之前的状态。但是这样会造成appendonly.aof 文件过大,所以redis 还支持了BGREWRITEAOF 指令,对appendonly.aof 进行重新整理。默认是不开启的。
appendfilename默认为appendonly.aof
appendfsync设置aof的同步频率,有三种选择always、everysec、no,默认是everysec表示每秒同步一次
no-appendfsync-on-rewrite指定是否在后台aof文件rewrite期间调用fsync,默认为no,表示要调用fsync(无论后台是否有子进程在刷盘)。Redis在后台写RDB文件或重写afo文件期间会存在大量磁盘IO,此时,在某些linux系统中,调用fsync可能会阻塞。
auto-aof-rewrite-percentage指定Redis重写aof文件的条件,默认为100,表示与上次rewrite的aof文件大小相比,当前aof文件增长量超过上次afo文件大小的100%时,就会触发background rewrite。若配置为0,则会禁用自动rewrite
auto-aof-rewrite-min-size指定触发rewrite的aof文件大小。若aof文件小于该值,即使当前文件的增量比例达到auto-aof-rewrite-percentage的配置值,也不会触发自动rewrite。即这两个配置项同时满足时,才会触发rewrite
lua-time-limit一个Lua脚本最长的执行时间,单位为毫秒,如果为0或负数表示无限执行时间,默认为5000
aof-rewrite-incremental-fsyncaof rewrite过程中,是否采取增量文件同步策略,默认为“yes”。 rewrite过程中,每32M数据进行一次文件同步,这样可以减少aof大文件写入对磁盘的操作次数

8、 启动redis

[root@localhost local]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

9、查看redis进程

[root@localhost local]# ps -ef |grep redis
# 如果需要关闭redis,直接kill掉redis进程即可

10、开机启动redis

建议使用方法二进行配置

方法一

在/etc/rc.local文件中加入redis的启动命令

[root@localhost local]# vi /etc/rc.local

在这里插入图片描述
如果没有成功,请查看下 /etc/rc.d/rc.local 有没有执行权限,如果没有,请进行授权

chmod +x /etc/rc.d/rc.local

然后重启。

方法二

前提:需要将 redis.conf 中 daemonize 为 yes ,确保守护进程开启

1、编辑开机启动脚本

1、在 /etc/init.d 目录下创建 redis 文件

vi /etc/init.d/redis
# chkconfig: 2345 10 90  
# description: Start and Stop redis   
  
# PATH=/usr/local/redis/bin                     # redis安装路径,下文如果使用变量时使用
REDISPORT=6379                            #redis的默认端口, 要和下文中的redis.conf中一致
EXEC=/usr/local/redis/bin/redis-server           #redis服务端的命令
# EXEC=${PATH}/redis-server          # 使用变量
REDIS_CLI=/usr/local/redis/bin/redis-cli         #redis客户端的命令  这两个一般都在 PATH目录下
# REDIS_CLI=${PATH}/redis-cli          # 使用变量
PIDFILE=/var/run/redis.pid                     #reids的进程文件生成的位置(可以在redis.conf文件中查看 pidfile 的值)
CONF="/usr/local/redis/etc/redis.conf"           #redis的配置文件所在的目录 
#AUTH="1234"  这句没什么用可以不要  
 
case "$1" in   
        start)   
                if [ -f $PIDFILE ]   
                then   
                        echo "$PIDFILE exists, process is already running or crashed."  
                else  
                        echo "Starting Redis server..."  
                        $EXEC $CONF   
                fi   
                if [ "$?"="0" ]   
                then   
                        echo "Redis is running..."  
                fi   
                ;;   
        stop)   
                if [ ! -f $PIDFILE ]   
                then   
                        echo "$PIDFILE exists, process is not running."  
                else  
                        PID=$(cat $PIDFILE)   
                        echo "Stopping..."  
                       $REDIS_CLI -p $REDISPORT  SHUTDOWN    
                        sleep 2  
                       while [ -x $PIDFILE ]   
                       do  
                                echo "Waiting for Redis to shutdown..."  
                               sleep 1  
                        done   
                        echo "Redis stopped"  
                fi   
                ;;   
        restart|force-reload)   
                ${0} stop   
                ${0} start   
                ;;   
        *)   
               echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
                exit 1  
esac

编写完成后,按 Esc,再输入:wq退出并保存
2、修改文件权限为775

chmod +x /etc/init.d/redis

3、测试redis启动

/etc/init.d/redis start

启动成功,说成设置成功
4、设置自启动

chkconfig redis on
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞天-小猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值