zoukankan      html  css  js  c++  java
  • redis的读写分离设计与实现

    背景:

    在项目压力测试期间出现单线程的redis操作读写有时对线程资源的竞争情况,导致在获取不到数据,或者获取数据的时候出现数据丢失的情况。

    需求:

    在大并发的时候,可以有效的对redis缓存进行操作,不会因为单线程的的资源竞争导致无效的操作。

    技术实现:

    既然知道是在并发的情况下,因为redis资源的竞争,导致的无效操作。那么为了避免这种资源竞争,可以通过redis集群的方式来实现数据的一致性,下面来看一下最简单的集群方式:一主一从的实现。

    1. redis-server及redis-cli等相关依赖的软件安装。
    2. 安装好以后拷贝redis.conf 到/etc/目录下面
    3. 修改配置文件中的一下选项
    1 #bind 127.0.0.1
    2 protected-mode yes
    3 port 6379
    4 daemonize yes
    5 requirepass passwd
    1. 启动redis-server服务器
    1 /usr/local/bin/redis-server /etc/redis.conf 
    1. 查看服务是否启动
    1 [root@localhost bin]# ps aux | grep redis
    2 root      1659  0.0  0.0 139132  9724 ?        Ssl  09:30   0:02 /usr/local/bin/redis-server 192.168.171.118:6379
    3 root      4898  0.0  0.0 137084  7688 ?        Ssl  09:51   0:02 /usr/local/bin/redis-server 192.168.171.118:6380
    4 root     12279  0.0  0.0 112820   976 pts/1    S+   11:17   0:00 grep --color=auto redis
    1. 配置从服务器配置文件,
    2. 拷贝redis.conf配置文件copy_redis..conf
    3. 修改一下选项
    #bind 127.0.0.1
    protected-mode yes
    
    port 6380
    daemonize yes
    
    # slaveof <masterip> <masterport>
    slaveof 127.0.0.1 6379
    
    # masterauth <master-passwor#d>
     masterauth passwd
    pidfile /usr/local/redis/redis_6380.pid
    requirepass passwd
    1. 启动从服务器
    1 /usr/local/bin/redis-server  /etc/copy_redis.conf 
    1. 通过redis-cli查看主从模式的redis集群信息
    1 info replication

    显示信息如下

     1 [root@localhost bin]# redis-cli -h 127.0.0.1 -p 6379
     2 127.0.0.1:6379> AUTH passwd
     3 OK
     4 127.0.0.1:6379> info replication
     5 # Replication
     6 role:master
     7 connected_slaves:1
     8 slave0:ip=127.0.0.1,port=6380,state=online,offset=8158,lag=1
     9 master_repl_offset:8158
    10 repl_backlog_active:1
    11 repl_backlog_size:1048576
    12 repl_backlog_first_byte_offset:2
    13 repl_backlog_histlen:8157
    14 127.0.0.1:6379> 

    切记,主从模式下从服务器可以当做读服务器,写数据的话是不会成功的,所以到时候不要一头雾水

    作者:first_semon
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题,欢迎交流
  • 相关阅读:
    OneFlow: 从 Op 到 Job
    琐碎知识点
    JS中的运算符优先级
    JS中的小括号,中括号,大括号
    逻辑与和逻辑或的短路运算
    类型转换
    一些好用的插件推荐
    src漏洞挖掘思路参考(待完善)
    计算机中的攻与防之效率提高篇(更新中)
    简单制作便携版浏览器
  • 原文地址:https://www.cnblogs.com/first-semon/p/14228892.html
Copyright © 2011-2022 走看看