从零开始的Linux运维屌丝之路,资源免费分享平台   运维人员首选:简单、易用、高效、安全、稳定、社区活跃的开源软件

Redis 事务和主从集群

发布:蔺要红06-01分类: NOSQL


一:事务

MULTI

标记一个事务块的开始。

事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行
EXEC

执行所有事务块内的命令

10.10.10.20:6379> MULTI #标记一个事务的开始
OK
10.10.10.20:6379> SADD mykey01 hehe
QUEUED
10.10.10.20:6379> SADD mykey02 hehe
QUEUED
10.10.10.20:6379> EXEC   #执行事务快内的命令
1) (integer) 1
2) (integer) 1
#如果事务错误,中间有一条命令错误,其他会正常执行、不支持回滚

二:主从
 
需要注意:同一台机器不同的配置文件启多个实例、

dir /var/lib/redi    pid文件   prot  一定要修改  修改后目录记得要创建

dump.rdb  appendonly.aof
cp /etc/redis.conf /etc/redis6378.conf      #复制一个配置文件
/usr/bin/redis-server /etc/redis6378.conf   #使用新的配置文件启动

#查看启动效果
[root@web01 ~]# netstat -lntup|grep -E "6379|6378"
tcp        0      0 10.10.10.20:6378        0.0.0.0:*               LISTEN      44699/redis-server  
tcp        0      0 10.10.10.20:6379        0.0.0.0:*               LISTEN      14294/redis-server  

#方法一:从库在命令行下输入、同步就会开始
10.10.10.20:6378> SLAVEOF 10.10.10.20 6379 #为主库的IP和端口
OK

方法二:从库配置文件修改
slaveof 10.10.10.20 6379
#完成后从库重启、即可同步、



#在redis命令行下输入info查看主从状态
...
# Replication
role:slave
master_host:10.10.10.20
master_port:6379
.....

#for ((i=1;i<=100000;i++));do redis-cli -h 10.10.10.20   SET k$i $i;done

批量插入测试同步
 
10.10.10.20:6379> BGSAVE  #主服务器手动同步到从服务器
Background saving started


1、当主挂掉以后:把从redis提升为主:10.10.10.20:6378> SLAVEOF OFF ON
2、当主重新启动后、从数据库进行: SLAVEOF 10.10.10.20 6379
至次完成手动切换

方案:主禁持久化、从redis持久化


三:Redis集群

1.客户端分片:将redis分片的工作放在业务程序段

   
实现方法和代码全部自己掌控,随时调整,需要手动迁移(麻烦)

2、代理分片:类似 Mysql Proxy  



       01、 https://github.com/twitter/twemproxy


3、Codis集群
 
项目源代码:https://github.com/CodisLabs/codis
不支持redis命令列表:https://github.com/CodisLabs/codis/blob/release3.2/doc/unsupported_cmds.md
  
参考博客:
https://blog.51cto.com/liweizhong/1639918
https://www.cnblogs.com/xuanzhi201111/p/4425194.html

4、官方Redis Cluster





 
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,如有侵权我会在24小时之内删除!

欢迎使用手机扫描访问本站