asp建站程序,做企业网站设计价格是多少钱,怎么下载网站动态图片,陪诊app开发1. 高性能
尽量使用短key
不要存过大的数据
避免使用keys *#xff1a;使用SCAN,来代替
在存到Redis之前压缩数据
设置 key 有效期
选择回收策略(maxmemory-policy)
减少不必要的连接
限制redis的内存大小#xff08;防止swap#xff0c;OOM#xff09;
slowLog
…1. 高性能
尽量使用短key
不要存过大的数据
避免使用keys *使用SCAN,来代替
在存到Redis之前压缩数据
设置 key 有效期
选择回收策略(maxmemory-policy)
减少不必要的连接
限制redis的内存大小防止swapOOM
slowLog
使用pipline批量操作数据 2. 高可用
2.1 单机版的高可用
数据持久化AOF(WAL) RDB 2.2 Replication-Sentinel模式
也就是哨兵模式。哨兵能对节点进行监控提醒自动故障迁移。
缺点主从模式切换需要时间可能会丢数据而且没有解决 master 写的压力存储性能没办法横向扩展。
适用场景缓存大小 10G时建议使用一主多从的哨兵模式。 从节点的数量根据qps来扩展比如10WQPS可以有3-4个从节点只能提高读操作的qps写的qps不能扩展。
架构图 2.3 Redis-Cluster模式
redis在3.0上加入了 Cluster 集群模式实现了 Redis 的分布式存储也就是说每台 Redis 节点上存储不同的数据。
Gossip协议维护节点的元数据信息进行节点间的信息同步。P2P去中心化的模式。最终一致性。 每个分区有一个master和若干slaver组成。
缺点对于大型集群来说 例如200 个使用 3.2.8 版本节点搭建的 Redis 集群在没有任何客户端请求的情况下每个节点仍然会产生 40Mb/s 的流量gossip协议 不建议使用官方的 Redis Cluster。
适用场景如果系统的缓存大小2000G 主节点数200个建议使用Redis Cluster模式 2.4 Proxy模式
适用于主节点数量 200的情况下。有Codis Proxy和Twemproxy Proxy来年各种中间件模式。
数据分片算法
1Codis 代理分片
2Twemproxy 代理分片 2.4.1 Redis数据分片
槽位共16384个槽位。
所有的键根据哈希函数映射到0 16383计算公式slot CRC16(key)16383。 3. 主从复制
哨兵模式和集群模式都需要进行主从复制。
核心流程
建立连接数据同步命令传播 4. 分布式缓存的常见问题
4.1 数据丢失
1.AOF异步刷盘
2.master和slave的数据同步是异步的 5. 数据预热 冷热分离 6. 缓存选型
由于 redis 只使用单核而 memcached 可以使用多核所以平均每一个核上 redis 在存储小数据时比memcached 性能更高。而在 100k 以上的数据中memcached 性能要高于 redis。虽然 redis 最近也在存储大数据的性能上进行优化但是比起 memcached还是稍有逊色。 7. 缓存过期
7.1 过期策略
TTL, LFU, LRU, Random 7.2 过期删除策略
定期删除将每个设置了过期时间的 key 放入到一个独立的字典中以后会定期遍历这个字典来删除到期的 key。惰性删除所谓惰性策略就是在客户端访问这个key的时候redis对key的过期时间进行检查如果过期了就立即删除不会给你返回任何东西。
定期删除是集中处理惰性删除是零散处理。