搭建redis及主从复制

redis介绍

Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。

Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。

与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经常用来做分布式锁。除此之外,Redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。

使用场景:

Redis的五个常见使用场景
1、会话缓存(Session Cache)
最常用的一种使用Redis的情景是会话缓存(session cache)。用Redis缓存会话比其他存储(如Memcached)的优势在于:Redis提供持久化。当维护一个不是严格要求一致性的缓存时,如果用户的购物车信息全部丢失,大部分人都会不高兴的,现在,他们还会这样吗?
幸运的是,随着 Redis 这些年的改进,很容易找到怎么恰当的使用Redis来缓存会话的文档。甚至广为人知的商业平台Magento也提供Redis的插件。
2、全页缓存(FPC)
除基本的会话token之外,Redis还提供很简便的FPC平台。回到一致性问题,即使重启了Redis实例,因为有磁盘的持久化,用户也不会看到页面加载速度的下降,这是一个极大改进,类似PHP本地FPC。
再次以Magento为例,Magento提供一个插件来使用Redis作为全页缓存后端。
此外,对WordPress的用户来说,Pantheon有一个非常好的插件 wp-redis,
这个插件能帮助你以最快速度加载你曾浏览过的页面。
3、队列(秒杀,抢购,12306)list数据类型的使用
Reids在内存存储引擎领域的一大优点是提供 list 和 set 操作,这使得Redis能作为一个很好的消息队列平台来使用。Redis作为队列使用的操作,就类似于本地程序语言(如Python)对 list 的 push/pop 操作。
如果你快速的在Google中搜索“Redis queues”,你马上就能找到大量的开源项目,这些项目的目的就是利用Redis创建非常好的后端工具,以满足各种队列需求。例如,Celery有一个后台就是使用Redis作为broker,你可以从这里去查看。
4、排行榜/计数器(set数据类型的使用)
Redis在内存中对数字进行递增或递减的操作实现的非常好。集合(Set)和有序集合(Sorted Set)也使得我们在执行这些操作的时候变的非常简单,Redis只是正好提供了这两种数据结构。所以,我们要从排序集合中获取到排名最靠前的10个用户–我们称之为“user_scores”,我们只需要像下面一样执行即可:
当然,这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数,你需要这样执行:
ZRANGE user_scores 0 10 WITHSCORES
Agora Games就是一个很好的例子,用Ruby实现的,它的排行榜就是使用Redis来存储数据的,你可以在这里看到。
5、发布/订阅
最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用,还可作为基于发布/订阅的脚本触发器,甚至用Redis的发布/订阅功能来建立聊天系统!(不,这是真的,你可以去核实)。
Redis提供的所有特性中,我感觉这个是喜欢的人最少的一个,虽然它为用户提供如果此多功能。

redis的数据类型:

Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

接下来是搭建过程

环境准备:

IP服务
192.168.0.103redis主
192.168.0.101redis从

redis下载地址: https://redis.io/download

一、下载redis包编译安装

[root@k8s-master bin]# wget https://download.redis.io/releases/redis-6.2.4.tar.gz
[root@k8s-master bin]# tar -zxf redis-6.2.4.tar.gz -C /usr/local/
[root@k8s-master bin]# cd /usr/local/redis-6.2.4/
[root@k8s-master redis-6.2.4]# make && make install PREFIX=/usr/local/redis

在这里插入图片描述

二、创建主配置文件存放目录

[root@k8s-node2 bin]# mkdir /usr/local/redis/etc
[root@k8s-node2 bin]# cp -a /usr/local/redis-6.2.4/redis.conf  /usr/local/redis/etc/

三、启动redis-server
[root@k8s-node2 etc]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
在这里插入图片描述
启动成功,这是redis运行界面,在这个界面可以看到对redis的所有操作。

但下面有一个WARING,这里的告警再说当前的TCP内核文件里配置的连接数较小,因为redis的连接数会超过当前的值,如有需要,可以将值设置成1024或2048,如果是测试环境可以设置成511。

优化redis,修改TCP内核文件 先Ctrl+C结束当前前台运行服务,之后修改文件

[root@k8s-node2 etc]# echo "511" > /proc/sys/net/core/somaxconn

修改后启动就不会出现WARING
在这里插入图片描述

当前是前台工作,会影响用户对服务器的其他操作,那咱们可以通过redis配置文件把前台服务改成后台。当然也可以通过
在启动服务命令后面添加&也是可以。

[root@k8s-node2 etc]# vim /usr/local/redis/etc/redis.conf

在这里插入图片描述
重新启动redis就会在后台运行

[root@k8s-node2 etc]# pkill redis
[root@k8s-node2 etc]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

在这里插入图片描述

redis搭建完毕

redis主从复制

主服务器上不需要操作

一、只需要在当从服务器的redis配置文件中末尾添加 slaveof masterIP redis端口

[root@k8s-node2 etc]# vim /usr/local/redis/etc/redis.con在这里插入图片描述

如果主服务器设置了redis密码需要在末尾再添加一行

masterauth redis密码

在这里插入图片描述
设置完成后保存并重启从服务器redis

二、连接上从服务器查看主从连接配置信息

192.168.0.101:6379> info replication

在这里插入图片描述
master_host:192.168.0.103 #主节点的Host名称或IP地址
master_port:6379 #主节点监听的TCP端口
master_link_status:up #对master的连接(up或者down)
master_last_io_seconds_ago:3 #自上次与主节点交互以来,经过的秒数
master_sync_in_progress:0 #指示主节点正在与从节点同步数

三、如果能查询到状态,则在主服务器上创建键值测试是否同步(主服务器可以读写,从服务器只能读)

[root@k8s-master bin]# ./redis-cli -h 127.0.0.1
127.0.0.1:6379> set test 123
OK
在这里插入图片描述
登陆从服务器查看
在这里插入图片描述
能查询到即可完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux上搭建Redis主从复制需要按照以下步骤进行操作: 1. 安装Redis:在Linux上安装Redis,可以使用apt-get或yum命令进行安装。 2. 配置Redis服务器:在Redis服务器上,需要修改redis.conf配置文件,将bind参数设置为服务器的IP地址,将protected-mode参数设置为no,将slave-read-only参数设置为no,将requirepass参数设置为一个密码,以保证安全性。 3. 启动Redis服务器:启动Redis服务器,使用redis-server命令即可。 4. 配置Redis从服务器:在Redis从服务器上,需要修改redis.conf配置文件,将bind参数设置为从服务器的IP地址,将protected-mode参数设置为no,将slave-read-only参数设置为yes,将masterauth参数设置为服务器的密码。 5. 启动Redis从服务器:启动Redis从服务器,使用redis-server命令即可。 6. 连接Redis从服务器:在Redis从服务器上,使用redis-cli命令连接Redis服务器,使用slaveof命令将从服务器设置为服务器的从服务器。 7. 测试Redis主从复制:在Redis服务器上,使用set命令设置一个键值对,然后在Redis从服务器上使用get命令获取该键值对,如果能够获取到,则说明Redis主从复制已经成功搭建。 以上就是在Linux上搭建Redis主从复制的步骤,需要注意的是,在配置Redis从服务器时,需要根据实际情况进行修改,以保证配置的正确性。 ### 回答2: Redis是一种开源的key-value数据库,它可以通过主从复制机制提供可靠性和性能增强。在主从复制模型中,有一个节点和多个从节点节点负责处理所有写操作,从节点则复制节点的数据以实现高可靠性和高可用性。 搭建Redis主从复制可以带来以下好处: 1. 数据冗余:节点将数据同时推送到不同的从节点上,一旦节点宕机,从节点可以立即接管服务,保证数据不丢失; 2. 负载均衡:节点负责写操作,从节点只负责读操作,可以极大程度上减轻节点的负载,提高系统性能; 3. 读取速度:多个从节点可以并行读取数据,提高读取速度。 下面是Linux搭建Redis主从复制的步骤: 1. 安装Redis:使用yum命令在CentOS Linux上安装Redis。 ``` yum install redis ``` 2. 准备Redis主从复制的配置文件,创建快照目录 ``` mkdir /etc/redis cp /etc/redis.conf /etc/redis/redis-master.conf cp /etc/redis.conf /etc/redis/redis-slave.conf mkdir /var/redis/redis-master mkdir /var/redis/redis-slave ``` 3. 编辑redis-master.conf文件,设置Redis节点的ip地址、端口、快照目录和持久化策略 ``` bind 127.0.0.1 port 6379 dir /var/redis/redis-master save 900 1 save 300 10 save 60 10000 ``` 4. 编辑redis-slave.conf文件,设置Redis节点的ip地址、端口、快照目录,以及主从复制的参数 ``` bind 127.0.0.1 port 6380 dir /var/redis/redis-slave slaveof 127.0.0.1 6379 ``` 5. 启动Redis节点 ``` redis-server /etc/redis/redis-master.conf ``` 6. 启动Redis节点 ``` redis-server /etc/redis/redis-slave.conf ``` 在实际应用中,主从复制可以大大增强Redis数据库的可靠性和可用性,使得系统更加健壮和高效。需要注意的是,为了保证整个主从复制的过程正确无误,用户需要根据Redis版本和特定目录等不同因素进行相应的调整。 ### 回答3: Redis是一个高性能的key-value存储系统,常用于缓存、队列等场景。为了提高Redis的可用性和稳定性,通常需要搭建Redis主从复制,实现数据的自动备份和高可用。在Linux操作系统上搭建Redis主从复制,可以按照以下步骤操作: 1.安装Redis:在Linux上安装Redis非常简单,可以在终端中输入命令sudo yum install redis,即可安装Redis软件包。 2.配置Redis服务器:打开Redis服务器的配置文件/etc/redis.conf,找到bind,将其注释掉;找到requirepass,输入密码并保存配置文件;找到daemonize,将其改为yes。启动Redis服务器。 3.配置Redis从服务器:打开Redis从服务器的配置文件/etc/redis.conf,找到bind,将其注释掉;找到requirepass,输入服务器密码并保存配置文件;找到daemonize,将其改为yes;找到slaveof,输入服务器IP和端口号,并保存配置文件。启动Redis从服务器。 4.测试:在服务器上通过redis-cli命令行输入的set命令设置一个键值对,在从服务器上通过redis-cli命令行输入的get命令获取键值对,如果返回相同的值,说明Redis主从复制搭建成功。 通过以上步骤可实现Redis主从复制搭建,实现数据的自动备份和高可用。同时,也需要注意Redis从服务器的配置和运维,保证Redis服务的稳定性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值