首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    分布式锁系列--04关于分布式锁的选型分析02

    2.按顺序依次向N个Redis节点执行获取锁的操作。这个获取操作跟前面基于单Redis节点的获取锁的过程相同,包含随机字符串my_random_value,也包含过期时间(比如PX 30000,即锁的有效时间 :T1)。为了保证在某个Redis节点不可用的时候算法能够继续运行,这个获取锁的操作还有一个超时时间(time out),它要远小于锁的有效时间(几十毫秒量级)。客户端在向某个Redis节点获取锁失败以后,应该立即尝试下一个Redis节点。这里的失败,应该包含任何类型的失败,比如该Redis节点不可用,或者该Redis节点上的锁已经被其它客户端持有(注:Redlock原文中这里只提到了Redis节点不可用的情况,但也应该包含其它的失败情况)。

    03

    redis主从

    环境介绍 master 192.168.1.28 centos 6.4 x64位系统 slave  192.168.1.80 centos 6.4 x64位系统 ############################################## 2台服务器都安装redis 安装redis组件tcl tar zxvf tcl8.6.0-src.tar.gz -C /usr/src/ cd /usr/src/tcl8.6.0/unix ./configure make && make install 安装redis tar zxvf redis-2.8.19.tar.gz -C /usr/src/ cd /usr/src/redis-2.8.19/ make PREFIX=/redis install vi /etc/profile PATH=$PATH:/redis/bin source /etc/profile cd /redis mkdir log mkdir data mkdir conf cp /usr/src/redis-2.8.19/redis.conf conf/redis-6379.conf vi conf/redis-6379.conf pid文件位置 41 pidfile /var/run/redis-6379.pid 客户端连接的超时时间,单位为秒,超时后会关闭连接 74 timeout 50 日志记录等级,4个可选值 98 loglevel warning 日志文件位置 103 logfile /redis/log/redis-6379.log 注释掉以下3行 142 #save 900 1 143 #save 300 10 144 #save 60 10000 设置 Redis 数据保存到disk的策略。save ""表示关闭策略,非常消耗I/O 145 save "" 镜像备份文件的文件名 177 dbfilename dump-6379.rdb 数据库镜像备份的文件放置的路径 187 dir /redis/data/ 禁用disk-based(基于硬盘),使用diskless,基于socket,使用网络传输 272 repl-diskless-sync no 当收到第一个请求时,等待多个slave一起来请求之间的间隔时间。 284 repl-diskless-sync-delay 5 设置redis能够使用的最大内存,清除已到期或即将到期的Key 449 maxmemory 300mb 开启数据持久化 appendonly yes 启动redis redis-server /redis/conf/redis-6379.conf & 查看端口 netstat -anpt | grep redis ###################################################### slave服务器修改配置文件 vi /redis/conf/redis-6379.conf 在以下位置添加一行 # slaveof <masterip> <masterport> slaveof 192.168.1.28 6379 重启redis pkill redis-server redis-server /redis/conf/redis-6379.conf & 查看端口 netstat -anpt | grep redis 在master主机写入key [root@localhost redis]# redis-cli 127.0.0.1:6379> set name aa OK 127.0.0.1:6379> keys * 1) "name" 在slave主机查看key [root@localhost conf]# redis-cli 127.0.0.1:6379> keys * 1) "name" 2边的key一样,说明正常。 关于redis持久化问题,上面的配置好了持久化。 如果重启redis,数据会丢失。 测试重启,再次进入,发现数据是空的 [root@localhost redis]# redis-cli 127.0.0.1:6379> keys * (empty list or set) 再次写入keys,使用save保存 [root@localhost redis]# redis-cli 127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379> set pass b OK 127.0.0.1:6379> keys * 1) "pass" 127.0.0.1:6379> save OK 127.0.0.1:6379> exit 重启redis [root@localhost re

    02
    领券