Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。

  • 特性:
  • 运行在内存中的数据集工作方式
  • 支持多种数据结构
  • 提供不同级别的磁盘持久化功能
  • 可搭建高可用集群
  • 支持对数据进行原子操作
  • 支持主从复制
  • 支持事务
  • 内存回收
  • 过期自动删除key
  • 订阅分发
  • LUA脚本
  • 自动故障转移
  • 支持大多数编程语言

使用Docker管理Redis服务,省去繁琐的安装配置,快速启动停止,快速部署Redis Cluster

使用Redis官方镜像:

拉取镜像:

docker pull redis

启动一个redis实例

$ docker run --name some-redis -d redis

启动实例开启持久性存储

$ docker run --name some-redis -d redis redis-server --appendonly yes

如果保存数据文件到宿主机,使用-v选项,数据卷挂载即可。

从另外一个应用连接到此容器

$ docker run --name some-app --link some-redis:redis -d application-that-uses-redis

redis客户端连接到此服务

$ docker run -it --link some-redis:redis --rm redis redis-cli -h redis -p 6379

启动时使用自定义配置文件,配置文件放置在宿主机/myredis/conf/redis.conf

$ docker run -v /myredis/conf/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf

redis主从复制实现读写隔离

原理:

1)当一个从数据库启动时,会向主数据库发送sync命令,

2)主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来

3)当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。

4)从数据库收到后,会载入快照文件并执行收到的缓存的命令。

 

这里使用一主一从,也可以一主多从

$ docker run --name master-redis -p 6379:6379 -d redis redis-server --appendonly yes

$ docker run --name slave-redis --link master-redis:master-redis -p 6380:6379 -d redis redis-server --appendonly yes --slaveof master-redis 6379

master-redis可以读写

./redis-cli -p 6379

./redis-cli -p 6380

slave-redis只能读,不能写

 

posted on 2017-08-11 10:10  浮沉一梦  阅读(166)  评论(0编辑  收藏  举报