主从复制,Could not connect to Redis at 127.0.0.1:6380: Connection refusednot connected> exit,1.主从模式如何指

目录

1.主从模式

如何指定redis-server端口

Could not connect to Redis at 127.0.0.1:6380: Connection refusednot connected> exit解决方法

数据同步命令:psync命令,完成数据同步的过程

psync replicationid offset:

replication id    VS     runId(两个不同的id)

​编辑

实时复制:


分布式系统设计一个非常关键的问题:单点问题

如果某个服务器程序,只有一个节点(只搞一个物理服务器,来部署这个服务器程序)

1.可用性问题:如果这个机器挂了,意味着服务就中断了

2.性能/支持的并发量也是比较有限的

引入分布式系统,主要也就是为了解决上述的单点问题

在分布式系统中,往往希望有多个服务器来部署redis服务,从而构成一个redis集群,此时就可以让这个集群给整个分布式系统中其他的服务,提供更稳定/更高效的数据存储功能~

在分布式系统中,希望使用多个服务器来部署redis,存在以下几种redis部署方式

1.主从模式

2.主从+哨兵模式

3.集群模式


1.主从模式

在若干个redis节点中,有的是主节点,有的是从节点,假设有三个物理服务器(称为三个节点)其中可以把其中一个节点,作为主节点,另外两个节点作为从节点,从节点需要听主节点的(从节点上的数据要跟随主节点变化;从节点数据要和主节点保持一致)

本来,在主节点上保存一堆数据,引入从节点之后,就是要把主节点上面的数据,复制出来,放到从节点中,后续,主节点这边对于数据有任何修改,都会把这样的修改给同步到从节点上

Redis主从模式中,从节点的数据,不允许修改!!只能读取数据

引入更多的计算资源,自然能够支持的并发量也就大幅度提高了

之前假如只是单个redis服务器节点,此时这个机器挂了,整个redis就挂了,上述这个主从结构,这个redis就不容易挂了,如果挂了某个从节点,没有啥影响,继续从主节点或者其他从节点读取数据,得到效果完全相同,如果挂掉的是主节点,还是有一定影响的,从节点只能够读数据,如果需要写数据,就没的写了

主从模式,主要是针对读操作进行并发量&可用性的提高

而写操作的话,无论是可用性还是并发,都非常依赖主节点,主节点又不能搞多个,实际业务场景中,读操作就是比写操作更加频繁~

主从结构,是分布式系统中比较经典的结构,不仅redis,mysql支持

如何配置redis主从结构,需要启动多个redis服务器,正常来说每个redis服务器程序,应该在当主机上(才是分布式)redis-server默认端口6379

如何指定redis-server端口

1.可以启动程序的时候,通过命令行来指定端口号--port选项

2.也可以直接在配置文件中,来设定端口。

把两个配置文件的端口号和daemonize来标记了。

daemonize:yes 按照后台进程的方式来运行

修改之后,需要按照下述命令

redis-server ./slave1.conf    

redis-server ./slave2.conf

^C[root@k8smaster 2]# kubectl -n redis-server get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES redis-master-966f8c49b-cfk65 0/1 Running 2 5m1s 10.244.0.13 k8smaster <none> <none> redis-slave1-547f7f4df5-7llz8 0/1 Running 2 5m1s 10.244.1.44 k8snode1 <none> <none> redis-slave2-88d55ddb9-n2mlj 0/1 Running 0 5m1s 10.244.2.26 k8snode2 <none> <none> [root@k8smaster 2]# kubectl -n redis-server get pv,pvc NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE persistentvolume/mysql-master-pv 10Gi RWO Retain Bound mysql-server/mysql-master-pvc 3h7m persistentvolume/mysql-slave1-pv 10Gi RWO Retain Bound mysql-server/mysql-slave1-pvc 3h7m persistentvolume/mysql-slave2-pv 10Gi RWO Retain Bound mysql-server/mysql-slave2-pvc 3h7m persistentvolume/redis-master-pv 1Gi RWO Retain Bound redis-server/redis-master-pvc 5m13s persistentvolume/redis-slave1-pv 1Gi RWO Retain Bound redis-server/redis-slave1-pvc 5m13s persistentvolume/redis-slave2-pv 1Gi RWO Retain Bound redis-server/redis-slave2-pvc 5m13s NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE persistentvolumeclaim/redis-master-pvc Bound redis-master-pv 1Gi RWO 5m13s persistentvolumeclaim/redis-slave1-pvc Bound redis-slave1-pv 1Gi RWO 5m13s persistentvolumeclaim/redis-slave2-pvc Bound redis-slave2-pv 1Gi RWO 5m13s [root@k8smaster 2]# kubectl -n redis-server exec -it redis-master-7d5f8d5f76-2xq4z -- redis-cli -a redispass Error from server (NotFound): pods "redis-master-7d5f8d5f76-2xq4z" not found [root@k8smaster 2]# kubectl -n redis-server exec -it redis-master-966f8c49b-cfk65 -- redis-cli -a redispass Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. AUTH failed: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct? 127.0.0.1:6379> SET testkey "hello redis" OK 127.0.0.1:6379> exit [root@k8smaster 2]# kubectl -n redis-server exec -it redis-slave1-547f7f4df5-7llz8 -- redis-cli -a redispass GET testkey Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. Could not connect to Redis at 127.0.0.1:6379: Connection refused command terminated with exit code 1
最新发布
10-15
根据引用内容,错误信息"Could not connect to Redis at 127.0.0.1:6379: Connection refused"意味着redis-cli客户端程序无法连接到本地的redis服务器。根据引用和引用,可能的原因是redis服务器没有启动或者配置文件中的bind参数没有正确设置。 要解决这个问题,首先需要确保redis服务器已经启动。如果没有启动,可以使用命令启动redis服务器。然后,根据引用中的提示,找到并编辑redis配置文件,通常是redis.conf。查找bind开头的配置行,确保它设置为正确的IP地址,例如"bind 127.0.0.1"或"bind 0.0.0.0"。保存配置文件并重新启动redis服务器。 如果redis服务器已经启动并且配置文件中的bind参数正确设置,但问题仍然存在,那么可能是其他原因导致的。根据引用,当你在客户端执行了shutdown命令关闭redis服务器后,会出现"not connected>"的错误信息。如果是这种情况,你可以重新启动redis服务器,然后再次尝试连接redis-cli客户端。 总结:如果出现"Could not connect to Redis at 127.0.0.1:6379: Connection refused not connected>"的错误信息,可能的解决方法包括启动redis服务器、检查配置文件中的bind参数设置和重新启动redis服务器等。希望这些方法能帮助你解决问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [redis:Could not connect to Redis at 127.0.0.1:6379: Connection refused错误解析](https://blog.csdn.net/qaz18201142158/article/details/107260181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Redis】连接报错:Could not connect to Redis at 127.0.0.1:6379: Connection refused](https://blog.csdn.net/qq_54796785/article/details/126111860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗哥不是甜妹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值