redishi redis必须知道的技巧

调研Redis高可用两种方案整个cluster被看做是一个整体,客户端可连接任意一个节点进行操作,当客户端操作的key没有分配在该节点上时,redis会返回转向指令,指向正确的节点 。
Redis 高可用架构 Redis 高可用架构 , 大家基本上都能想到主从、哨兵、集群这三种模式 。哨兵模式:它主要执行三种类型的任务:哨兵其实也是一个分布式系统,我们可以运行多个哨兵 。
数据库同步到Redis 我们大多倾向于使用这种方式,也就是将数据库中的变化同步到Redis,这种更加可靠 。Redis在这里只是做缓存 。
【redishi redis必须知道的技巧】Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过RedisSentinel实现的高可用方案,同时还支持通过RedisCluster实现的数据自动分片能力 。
这种方案更适合于对数据可靠性要求不高,比如一些统计日志打点 。Redis的PUSH/POP机制,利用的Redis的列表(lists)数据结构 。比较好的使用模式是,生产者lpush消息 , 消费者brpop消息,并设定超时时间,可以减少redis的压力 。
Redis持久化策略(看这篇,你肯定会有所获)1、Redis 提供了多种不同级别的持久化方式:RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot) 。
2、在redis的配置里有着这样的一段配置:save 900 1save 300 10save 60 10000很关键的一段配置 , 这时RDB持久化的核心 。
3、RDB持久化默认有三种策略 可在redis.conf中配置,会以一段时间内达到指定修改的次数为规则来触发快照操作 , 快照文件名为dump.rdb 。每当Redis服务重启的时候都会从该文件中把数据加载到内存中 。
4、保存路径同RDB持久化方式一致,通过dir配置指定 。AOF的工作流程操作:命令写入(append)、文件同步(sync)、文件重写(rewrite)、重启加载(load),如图5-2所示 。1)所有的写入命令会追加到aof_buf(缓冲区)中 。
5、Redis 的持久化有两种策略:RDB(Redis Database):指定的时间间隔能对你的数据进行快照存储 。AOF(Append Only File):每一个收到的写命令都通过write函数追加到文件中 。
Redis的多路复用是如何保证读写的顺序正确redis是一个单进程单线程的内存数据库,主要用来作为缓存系统 。
这样用户可以注册多个socket , 然后不断地调用select读取被激活的socket,redis服务端将这些socke置于队列中 , 然后,文件事件分派器 , 依次去队列中取 , 转发到不同的事件处理器中 , 提高读取效率 。
Redis采用多路复用机制,使其在网络I/O操作中可以大量并发处理客户端请求,实现高吞吐率 。I/O多路复用 在单线程中通过记录跟踪每一个I/O流的状态来管理多个I/O流 。

    推荐阅读