1、下载源码并编译安装
cd /opt
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
# 解压
tar xzf redis-5.0.7.tar.gz
# 编译
cd redis-5.0.7
make
# 安装到/usr/local/redis
make PREFIX=/usr/local/redis install
# 复制解压目录下的配置文件到安装目录/usr/local/redis下
cp /opt/redis-5.0.7/redis.conf /usr/local/redis/bin/
# 启动服务端
/usr/local/redis/bin/redis-server
2、Redis配置详解
# 修改配置文件
vim /usr/local/redis/bin/redis.conf
# 前10个
# 1.默认不是以守护进程的方式运行,将daemonize no改为daemonize yes以守护进程的方式运行:
daemonize yes
# 2.当redis以守护进程方式运行时,会默认将pid写在/var/run/redis.pid文件,可以通过修改pidfile的选项,指定文件位置
pidfile /var/run/redis.pid
# 3.Redis的监听端口默认为:6379,可以通过修改port选项进行修改
port 6379
# 4.绑定允许访问主机的地址,默认为:127.0.0.1可以通过修改bind选项进行修改
bind 127.0.0.1
# 5.设置客户端限制后,多长时间进行断开连接,默认为300,可以通过修改timeout进行设定,如果设置为0则表示关闭该功能
timeout 300
# 6.指定日志记录级别,默认为verbose,共四个级别:debug、verbose、notice、warning
loglevel verbose
# 7.日志记录方式,默认为标准输出,如果Redis使用守护进程方式运行,这里又配置为标志输出,那么日志将发送给 /dev/null
logfile stdout
# 8.设置数据库的数量,默认数据库数量为16个,可以通过修改databases 进行设定
databases 16
# 9.指定在多长时间内,又多少次更新操作后,就将数据同步到数据文件,可以通过修改 save进行设置
save <seconds> <changes>
默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示:
900秒 1个更改
300秒 10个更改
60秒 10000个更改
# 10.指定存储到本地数据库的数据是否进行压缩,默认yes,Redis采用的时LZF压缩算法,如果为了节省CPU时间可以关闭,但是会导致数据文件巨大,占用磁盘空间
rdbcompression yes
# 中间10个
# 11.指定本地数据库文件名,默认为dump.rdb
dbfilename dump.rdb
# 12.指定本地数据库存放的目录
dir ./
# 13.设置当机器为从机slav服务时,设置主机master的服务IP以及端口,在启动Redis时,会自动从master同步数据
slaveof <masterip> <masterport>
# 14.当master服务设置了密码保护时,slav服务连接master需要密码
masterauth <master-password>
# 15.设置Redis连接密码,如果配置了连接密码,客服端在连接Redis时需要通过 AUTH <password>命令提供密码,默认时关闭的
requirepass foobared
# 16.设置同一时间客户端连接的最大数,默认是无限制的,maxclients 0表示无限制,当超过限制后,就会报 max number of clients reached 错误
maxclients 128
# 17.指定Redis最大内存限制,Redis启动时会把数据加载到内存中,当达到最大内存后Redis会先尝试清除已到期或者即将到期的key,如果这样操作之后仍然达到最大值,那么不能再进行写操作,只能进行读操作,默认为服务器最终内存
maxmemory <bytes>
# 18.指定是否再每次更新操作后进行日志记录,Redis默认情况下是异步将数据写入磁盘,如果不开启可能在断电后造成数据丢失,因为redis本身同步数据文件是按照配置的save条件来同步的,所有的数据可能在内存中,默认值为 no
appendonly no
# 19.指定更新的文件名,默认为appendonly.aof
appendfilename appendonly.aof
# 20.指定更新日志条件,共有三个可选值
no # 表示等操作系统进行数据缓存到同步
always # 表示每次更新操作后手动调节fsync(),将数据写到磁盘,慢但是安全,
everysec # 表示每秒同步一次,折中方案,默认值
# 结尾10个
# 21.是否启用虚拟内存机制,默认值为no,vm机制将数据分页存放,由Redis将访问量较少的页,放到swap磁盘,访问多的页面有磁盘放到内存
vm-enabled no
# 22.虚拟内存文件的路径,默认值为/tmp/redis.swap,不可以多个Redis实例共享
vm-swap-file /tmp/redis.swap
# 23.将所有大于最大虚拟内存的数据存入虚拟内存,不论vm-max-memoryz设置多少,所有,索引数据都是内存存储的,也就是说,当vm-max-memory设置为0时,就是将所有的value存放在磁盘之中,默认值为0
vm-max-memory 0
# 24.Redis swap文件分成了很多page,一个对象可以保存在多个page上,但是一个page上不能被多个对象共享,vm-page-size时要根据存储的数据大小来设定,官方建议,如果是存放很多小对象,page最好设置为32bytes或者64bytes;如果存储对象很大,就用更大的page,若是不确定就用默认值
vm-page-size 32
# 25.设置swap文件中的page数量,由于页表是存放在内存中的,在磁盘上每8个page就会消耗1个byte的内存
vm-pages 134217728
# 26.设置访问swap文件的线程数,最好不要超过机器的cpu核心数,如果设置为0,那么所有的swap文件都是串行的,可能会导致较长时间的延迟,默认值为4
vm-max-threads 4
# 27.设置在向客服端应答时,是否把较小的包合并为一个包进行发送,默认开启
glueoutputbuf yes
# 28.指定在超过一定数量或者最大的元素超过临界值时,采用一种特殊的哈希算法
hash-max-zipmap-entries 64
hash-max-zimap-value 512
# 29.指定是否激活重置hash,默认开启
activerehashing yes
# 指定包含其他的配置文件,可以在同一主机上多个Redis实例之间使用同一份配置文件,而同时各个实例又又自己的特定配置文件
include /path/to/local.conf
3、自定义配置
进入redis.conf所在的目录进行修改配置
daemonize yes
bind 127.0.0.1 #注释掉,允许本机外的机器访问
requirepass 设置密码
4、启动Redis
服务端启动
/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
客服端启动
/usr/local/redis/bin/redis-cli -h ip -p port -a password
关闭Redis
第一种,非正常关闭
ps -ef | grep -i redis
kill -9 PID
第二种,正常关闭,通过客户端进行shutdown
/usr/local/redis/bin/redis-cli shutdown -a password
5、设置开启启动
新建服务
chmod 644 /usr/local/redis/bin/redis.conf
vim /usr/lib/systemd/system/redis.service
# 内容如下:
[Unit]
Description=Redis
After=network.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf --daemonize yes
ExecStop=/usr/local/bin/redis-cli -p 6379 shutdwn -a jiangyu5201314
Restart =always
[Install]
WantedBy=multi-user.target
刷新配置
systemctl daemon-reload
systemctl enable redis.service
systemctl start redis.service
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jiang4yu@126.com