• 1. 知识分享——redis 主讲人:潘洋波 邮箱:panyangbo@hikvision.com.cn
  • 2. 介绍redis 命令用例 事务 复制 持久化 传统sql数据模型转化例 分布式数据服务 镜像 分区 目录
  • 3. 介绍redisNosql 内存 支持主从模式 K-V 优点 tps: SET 110000 ,GET:81000 缺点 事务不支持回滚,官方不支持windows 官方 :www.redis.io Microsoft Open Tech group :https://github.com/MSOpenTech/redis Jedis:https://github.com/xetorthio/jedis
  • 4. 命令实战用例Key:expire,ttl,migrate,sort alpha,sort limit String:migrate,append,bitcount,setbit,getset,incr,set,setrange List:b*pop,rpoplpush Hash:hget,hset,hmget,hmset Set:sdiff,sinter,sunion Zset:......
  • 5. 事务A.multi,exec,discard B.watch-cas操作 不支持rollback Redis 命令只会因为错误的语法而失败(并且这些问题不能在入队时发现),或是命令用在了错误类型的键上面:这也就是说,从实用性的角度来说,失败的命令是由编程错误造成的,而这些错误应该在开发的过程中被发现,而不应该出现在生产环境中。 因为不需要对回滚进行支持,所以 Redis 的内部可以保持简单且快速。 2018/10/15
  • 6. 复制SYNC ,BGSAVE ,PSYNC ,SLAVEOF redis2.8开始主服务器只在有至少 N 个从服务器的情况下,才执行写操作 不过, 因为 Redis 使用异步复制, 所以主服务器发送的写数据并不一定会被从服务器接收到, 因此, 数据丢失的可能性仍然是存在的。 运作原理: 1.从服务器以每秒一次的频率 PING 主服务器一次, 并报告复制流的处理情况。 2.主服务器会记录各个从服务器最后一次向它发送 PING 的时间。 3.用户可以通过配置, 指定网络延迟的最大值 min-slaves-max-lag , 以及执行写操作所需的至少从服务器数量 min-slaves-to-write 。 2018/10/15
  • 7. 持久化aof:命令记录文件 rdb:数据库快照 一般来说, 如果想达到足以媲美 PostgreSQL 的数据安全性, 你应该同时使用两种持久化功能。如果你非常关心你的数据, 但仍然可以承受数分钟以内的数据丢失, 那么你可以只使用 RDB 持久化。有很多用户都, 但我们并不推荐只使用 AOF 持久化: 因为定时生成 RDB 快照(snapshot)非常便于进行数据库备份, 并且 RDB 恢复数据集的速度也要比 AOF 恢复的速度要快, 除此之外, 使用 RDB 还可以避免AOF 程序的 bug 。 2018/10/15
  • 8. Nosql数据模型Hash实现 Key:员工名字 Value:办公楼楼层座位号员工姓名二期22N1-1张三……Sql: select 员工姓名 from table where 楼层 = 22 and 座位号 = N1-1 and 办公楼 = 二期; select 员工姓名 from table where 员工编号 = 1; Sql数据库redis数据库二期:22:N1-1张三......
  • 9. 分布式数据服务当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题: 1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。 2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。 于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。
  • 10. 通常,我们会通过两种手段来扩展我们的数据服务: 1)数据分区:就是把数据分块放在不同的服务器上(如:uid % 16,一致性哈希等)。 2)数据镜像:让所有的服务器都有相同的数据,提供相当的服务。 2018/10/15
  • 11. 镜像MS
  • 12. 2PC Paxos算法2018/10/15
  • 13. 分区一致性hash