内容简介:----------------------------------------安装redis-5.0.4----------------------------------------修改配置文件创建命令链接
----------------------------------------安装redis-5.0.4----------------------------------------
wget http://download.redis.io/releases/redis-5.0.4.tar.gz tar zxvf redis-5.0.4.tar.gz -C /usr/local/ mv /usr/local/redis-5.0.4 /usr/local/redis cd /usr/local/redis make
修改配置文件
bind 0.0.0.0 #配置监听地址 protected-mode no #关闭保护模式,允许外网连接数据库 daemonize yes #开启以后台方式运行 logfile "/usr/local/redis/log/redis.log" #日志文件路径 dir /usr/local/redis/ #dump快照存放路径
mkdir /usr/local/redis/log;touch /usr/local/redis/log/redis.log #创建日志文件
创建命令链接
ln -s /usr/local/redis/src/redis-cli /usr/local/bin/redis ln -s /usr/local/redis/src/redis-cli /usr/local/bin/redis-cli ln -s /usr/local/redis/src/redis-server /usr/local/bin/redis-server
设置 redis 开机自启动
echo "redis-server /usr/local/redis/redis.conf" >> /etc/rc.local chmod +x /etc/rc.local
启动redis服务
redis-server /usr/local/redis/redis.conf
测试连接
redis-cli
----------------------------------------安装过程可能出现的问题----------------------------------------
1.CentOS默认没有安装gcc,这会导致我们无法make成功
yum install gcc-c++ -y #解决办法:yum安装开发环境
2.make时报如下错误:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
#include <jemalloc/jemalloc.h>
^
compilation terminated.
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/redis-5.0.4/src'
make: *** [all] Error 2
原因是jemalloc重载了 Linux 下的ANSI C的malloc和free函数
make MALLOC=libc #解决办法:make时添加参数
3.make之后,会出现一句提示
Hint: To run 'make test' is a good idea ;)
但是不测试,通常是可以使用的;若我们运行make test ,会有如下提示
[devnote@devnote src]$ make test
You need tcl 8.5 or newer in order to run the Redis test
make: ***[test] Error_1
yum install tcl -y #解决办法:yum安装tcl8.5
----------------------------------------redis持久化方式----------------------------------------
RDB持久化:将Reids在内存中的数据库记录定时dump到磁盘上,类似于快照功能(半持久化模式)
RDB方式配置:vim /usr/local/redis/redis.conf save 900 1 #开启RDB快照功能,在900秒内完成一个key值得变动触发快照功能,如若将所有save配置项都注释掉,那么则将关闭RDB快照功能 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes #当RDB快照后台进程失败,不影响用户得写操作 rdbcompression yes #是否将RDB快照文件压缩,关闭后会增加性能 rdbchecksum no #关闭RDB快照文件的检查校验,增加性能 dbfilename dump.rdb #快照文件的名称 dir ./ #快照文件的存储路径,./为redis的安装目录下
AOF持久化:append only file--原理是将Reids的操作日志以追加的方式写入文件,近似实时性(全持久化模式)
AOF持久化方式配置:vim /usr/local/redis/redis.conf #save 900 1 #save 300 10 #save 60 10000 appendonly yes #开启AOF持久化方式 appendfilename "appendonly.aof" #指定持久化的文件 appendfsync everysec #频率,具体参数见下表 no-appendfsync-on-rewrite no #如若设置为yes,则redis执行的命令会存放到缓冲区,待系统自动同步到硬盘 auto-aof-rewrite-percentage 100 #若当前写入的AOF文件达到了上次rewrite文件大小的100%,则触发rewrite操作 auto-aof-rewrite-min-size 64mb #设置AOF持久化重写文件的最小值,当达到60M并且符合100%的条件时,则触发rewrite操作
| 选项 | 同步频率 |
| always | 每一次写操作都会调用一次fsync,这时数据是最安全的,当然,由于每次都会执行fsync,所以其性能也会受到影响 |
| everysec | 默认每隔一秒进行一次fsync调用,将缓冲区中的数据写到磁盘,但是当这一次的fsync调用时长超过1秒时。Redis会采取延迟fsync的策略,再等一秒钟。也就是在两秒后再进行fsync,这一次的fsync就不管会执行多长时间都会进行 |
| no | redis不会主动调用fsync去将AOF日志内容同步到磁盘,所以这一切就完全依赖于操作系统的调试了。对大多数Linux操作系统,是每30秒进行一次fsync,将缓冲区中的数据写到磁盘上 |
以上所述就是小编给大家介绍的《redis数据库部署及持久化》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Impractical Python Projects
Lee Vaughan / No Starch Press / 2018-11 / USD 29.95
Impractical Python Projects picks up where the complete beginner books leave off, expanding on existing concepts and introducing new tools that you’ll use every day. And to keep things interesting, ea......一起来看看 《Impractical Python Projects》 这本书的介绍吧!