redis 主从+哨兵
主对于数据可读可写。从默认是只读不写的。当从连接上主时,主会将数据同步到从上
如果主挂掉了,怎么办,整个服务就不可用了
解决方案就是哨兵
他可以作为一个第三方,监控着我们主节点的状态,当发现主挂掉后,就会从这个主的从服务器中进行选举,推选出一个新主,同时slave也切换成这个新主的slave,如果原来的主重启成功了也不会再次成为主了,而是作为slave挂到新主上。
Redis构建分布式锁
根据Redis命令:SET key value NX EX max-lock-time
这里补足之下: 自2.6.12版本之后, 便可采用set来赚取锁, Lua 脚原本放出锁。setnx是老黄历了,set命令nx,xx等参数, 是借以构建 setnx 的功能。
jedis.set(String key, String value, String nxxx, String expx, int time)
EX seconds -- Set the specified expire time, in seconds.
PX milliseconds -- Set the specified expire time, in milliseconds.
NX -- Only set the key if it does not already exist.
XX -- Only set the key if it already exist.
SET key value [expiration EX seconds|PX milliseconds] [NX|XX]
进入容器
如果不进入容器,也可以通过docker logs xxx,xxx是容器ID,来查看容器的输出信息。
docker exec [OPTIONS] container-id COMMAND
容器在运行时指定 -d 选项时, 是以后台进程的形式运行的
OPTIONS常用的一般是 -t, -i,意义跟在docker run选项中一样 —— 为容器启动一个伪终端(pseudo-tty),并保持标准输入打开,从而可以像Linux命令行一样进行交互, COMMAND一般为 bash。