Linux企业运维---redis1

本文介绍了Linux环境下Redis的主从复制配置,详细讲解了主从复制的概念、作用和流程,并提供了实验环境及步骤。接着讨论了Redis的主从复制搭建过程,包括在两台服务器上的配置和验证。最后提到了Redis集群的搭建和管理,以及PHP与Redis的连接配置,展示了如何在Linux服务器上安装和配置Nginx、PHP-FPM,实现PHP与Redis的交互。
摘要由CSDN通过智能技术生成

redis软件下载地址:Redis

redis支持的数据类型:

• 字符串(strings)
• 散列(hashes)
• 列表(lists)
• 集合(sets)
• 有序集合(sorted sets)

redis常用命令:

config get * 查看配置
select 1 选择数据库
flushdb 清空当前数据库
flushall 清空所有数据库
move key 1 移动key
del key 删除
rename oldkey newkey 改名
expire key 10 设置过期时间
persist key 设置持久化
keys user* 查询
exists key 判断是否存在

Redis主从复制的基本情况

1、Redis主从复制的概念

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。

默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

2、Redis主从复制的作用

●数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

●故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。

●负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

●高可用基石:除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

3、Redis主从复制的流程

●【1】若启动一个Slave机器进程,则它会向Master机器发送一个“sync command”命令,请求同步连接。

●【2】无论是第一次连接还是重新连接,Master机器都会启动一个后台进程,将数据快照保存到数据文件中(执行rdb操作),同时Master还会记录修改数据的所有命令并缓存在数据文件中。

●【3】后台进程完成缓存操作之后,Maste机器就会向Slave机器发送数据文件,Slave端机器将数据文件保存到硬盘上,然后将其加载到内存中,接着Master机器就会将修改数据的所有操作一并发送给Slave端机器。若Slave出现故障导致宕机,则恢复正常后会自动重新连接

●【4】Master机器收到Slave端机器的连接后,将其完整的数据文件发送给Slave端机器,如果Mater同时收到多个Slave发来的同步请求,则Master会在后台启动一个进程以保存数据文件,然后将其发送给所有的Slave端机器,确保所有的Slave端机器都正常。

二、redis主从复制搭建

实验环境:

主机名称

ip

角色

server1 172.25.10.1 master
server2 172.25.10.2 slave
server3 172.25.10.3 slave

 实验步骤:

在server1中操作

[root@server1 ~]# ls

[root@server1 ~]# tar zxf redis-6.2.4.tar.gz
[root@server1 ~]# ls
dump.sql                   nginx-1.20.1                      redis-6.2.4
mysql-5.7.31               nginx-1.20.1.tar.gz               redis-6.2.4.tar.gz
mysql-boost-5.7.31.tar.gz  php-fpm-5.4.16-46.el7.x86_64.rpm
[root@server1 ~]# cd  redis-6.2.4
[root@server1 redis-6.2.4]# ls
00-RELEASENOTES  COPYING   MANIFESTO   runtest-cluster    src
BUGS             deps      README.md   runtest-moduleapi  tests
CONDUCT          INSTALL   redis.conf  runtest-sentinel   TLS.md
CONTRIBUTING     Makefile  runtest     sentinel.conf      utils
[root@server1 redis-6.2.4]# make && make install

[root@server1 redis-6.2.4]# cd utils/
[root@server1 utils]# ls

[root@server1 utils]# ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server

This systems seems to use systemd.
Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!
[root@server1 utils]# vim install_server.sh

78 #if [ "${_pid_1_exe##*/}" = systemd ]
 79 #then
 80 #       echo "This systems seems to use systemd."
 81 #       echo "Please take a look at the provided example service unit files     in this directory, and adapt and install them. Sorry!"
 82 #       exit 1
 83 #fi      注释

[root@server1 utils]# ./install_server.sh

/var/run/redis_6379.pid exists, process is already running or crashed
Installation successful!  -----------------> 成功

 [root@server1 utils]# cd /etc/redis/
[root@server1 redis]# ls
6379.conf  sentinel.conf
[root@server1 redis]# vim 6379.conf

 76 bind 0.0.0.0

root@server1 redis]# /etc/init.d/redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...

[root@server1 redis]# netstat -antlp

tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      7971/redis-server 0

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      3315/master    

 

 测试:

 [root@server1 redis]# cd
[root@server1 ~]# cd redis-6.2.4/
[root@server1 redis-6.2.4]# ls

[root@server1 redis-6.2.4]# redis-cli     登陆
127.0.0.1:6379> set name westos
OK                                                              
127.0.0.1:6379> get name
"westos"

127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> get name           server1为master 可以读写
(nil)

127.0.0.1:6379> set name westos
OK
127.0.0.1:6379> EXPIRE name 5               5秒后后过期
(integer) 1
127.0.0.1:6379> get name
"westos"
127.0.0.1:6379> get name
"westos"
127.0.0.1:6379> get name
(nil)


在server2中操作:

[root@server2 ~]# ls
dump.sql  redis-6.2.4.tar.gz
[root@server2 ~]# tar zxf redis-6.2.4.tar.gz
[root@server2 ~]# ls
dump.sql  redis-6.2.4  redis-6.2.4.tar.gz
[root@server2 ~]# cd redis-6.2.4/
[root@server2 redis-6.2.4]# make && make install

[root@server2 ~]# ls
dump.sql  redis-6.2.4.tar.gz
[root@server2 ~]# tar zxf redis-6.2.4.tar.gz
[root@server2 ~]# ls
dump.sql  redis-6.2.4  redis-6.2.4.tar.gz
[root@server2 ~]# cd redis-6.2.4/
[root@server2 redis-6.2.4]# make && make install

[root@server2 utils]# ls
build-static-symbols.tcl  redi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值