设为首页 加入收藏

TOP

redis数据库安装 redis持久化及主从复制(一)
2019-09-17 18:39:42 】 浏览:44
Tags:redis 数据库 安装 持久化 主从 复制

----------------------------------------安装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 192.168.100.101    #配置监听地址
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主从复制----------------------------------------

同步类型:

1.全量同步:

redis全量复制一般发生在Replica初始化阶段,这时Replica需要将Master上的所有数据都复制一份。具体步骤如下: 

1)从服务器连接主服务器,发送SYNC命令(从服务器向主服务器

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇count()聚合函数正确用法 下一篇[20190423]那个更快的疑问3.txt

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目