Redis自问世以来,在众多K-v数据库中表现出色,已受到很多项目的青睐,这主要得益于它良好的设计原理、丰富的结构、以及卓越的性能;甚至有人一提到缓存,就想到Redis,将二者化为一体;不过,将Redis单纯地作为数据缓存服务只是它被使用的比较广泛的场景之一;除此之外,我们可将其使用在更多的业务场景中,比如热门排行、秒杀系统、社交应用、日志系统、消息队列、搜索服务、分布式锁、发布订阅类服务等等;
本文主要结合Redis入门的需要,介绍下如何在Centos中安装Redis服务,并搭建最基本的主从同步架构;
首先我们在官网https://redis.io/上面下载redis源码包,比如redis-4.0.11.tar.gz
然后解压到自己机器的源码目录tar zxvf redis-4.0.11.tar.gz,比如
/usr/local/src/redis
然后cd /usr/local/src/redis/redis-4.0.11
然后开始编译
make MALLOC=libc
如果想自定义安装路径,则可在install前先新建prefix
mkdir -p/opt/server/redis-4-0-11/
然后
make installPREFIX=/opt/server/redis-4-0-11/
安装后可以将源码中的redis.conf文件拷贝到自己容易管理的路径下
比如我的机器上,是在 /opt/server/redis-4-0-11/conf目录下
因redis默认不是以守护进程的方式运行的,如果想以守护进程的方式运行,则进入配置文件,将daemonize的值修改为yes再启动即可
daemonize yes
然后启动redis,如
/opt/server/redis-4-0-11/bin/redis-server /opt/server/redis-4-0-11/conf/redis_6379.conf
并将其放置到开机启动中:
vim /etc/rc.local
下面开始实例化从节点:
则 cpredis_6379.confredis_6380.conf
然后修改实例2的conf文件redis_6380.conf中对应的port为6380
并修改实例2的pid的路径配置
pidfile /var/run/redis_6380.pid
然后加入slaveof 127.0.0.1 6379
意思是将当期服务转变为实例1(6379)的从服务;
然后分别启动这两个示例:
/opt/server/redis-4-0-11/bin/redis-server /opt/server/redis-4-0-11/conf/redis_6379.conf
/opt/server/redis-4-0-11/bin/redis-server /opt/server/redis-4-0-11/conf/redis_6380.conf
查看启动后的进程:
[root@jordy conf]# ps-ef | grep redis-server|grep -v grep
root 14862 1 0 12:08? 00:00:01/opt/server/redis-4-0-11/bin/redis-server 127.0.0.1:6379
root 15058 1 0 12:44? 00:00:00/opt/server/redis-4-0-11/bin/redis-server 127.0.0.1:6380
查看进程id保存文件
[root@jordy conf]#cat /var/run/redis_6379.pid
14862
[root@jordy conf]#cat /var/run/redis_6380.pid
15058
用两个不同的客户端连接:
redis-cli -h127.0.0.1 -p 6379
redis-cli -h127.0.0.1 -p 6380
然后我们在实例1上运行info命令,查看到如下结果,即当前实例为主节点:
然后我们在实例2上运行info命令,查看到如下结果,即当前实例为从节点:
然后在实例1中set 一个key
比如 set addr beijing
在实例2中,我们get addr 发现,这个时候,已经可以获取到主实例1中刚刚set 的key:
这样我们就实现了最最基本的主从复制;
从以上过程我们了解到,在基本的主从复制架构中,从节点主要的作用是:
1.扩展主节点的读能力,可有效分担主节点读压力。
但如果主节突然宕机呢,如何保证服务的高可用?这个时候其他从节点又能扮演什么角色?后面分享,我们一起来探讨;
领取专属 10元无门槛券
私享最新 技术干货