# redis-learn **Repository Path**: idea_dsd/redis-learn ## Basic Information - **Project Name**: redis-learn - **Description**: redis学习 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-06-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Redis简介 ## 1.redis是什么 + 基于键值的存储服务系统 + 支持多种数据结构 ## 2.redis数据结构 + String/blobs/bit 字符串 + Hash tables Hash表 + Linked lists 有序list + sets 无序set + sorted sets 有序set **新版本特性** + BitMaps: 位图 (本质字符串) + HyperLogLog: 超小内存唯一值计数(本质字符串) + GEO: 地理位置定位 ## 3.Redis的特性 + 速度快 官方10万ops(每秒10万读写),主要原因:数据存储在内存中 + 支持持久化 断电不丢失数据:redis所有数据保持在内存中,对数据的更新将异步的保存到磁盘中 + 多种数据结构 + 支持多种编辑语言 java,php,python + 功能丰富---发布订阅,lua脚本,事务,pipeline(并发效率) + 主从复制 + 高可用、分布式 (redis2.8支持高可用)(redis3.0支持分布式) ## 4.redis典型应用场景 + 缓存系统 + 计数器 类似转发数,评论数之类的 + 消息队列系统 简单的消息列队功能 + 排行榜 有序集合完成排行榜的功能 + 社交网络 计数,排行之类 + 实时系统 ## 5.redis的基础 [1.redis的安装与配置](./redis/redis安装与配置.md) [2.redis的常用命令](redis/redis的常用命令数据结构编码.md) ## 6.redis结构及应用 [1.redis数据操作--string](redis/数据结构/redis数据操作---string.md) [2.redis数据操作---hash](redis/数据结构/redis数据操作---hash.md) [3.redis数据操作---list](redis/数据结构/redis数据操作--list.md) [4.redis数据操作---set](redis/数据结构/redis数据操作--set.md) [5.redis数据操作---zset](redis/数据结构/redis数据操作--zset(有序集合).md) ## 7.redis客户端 [1.redis客户端--java](redis/客户端/redis客户端--java.md) ## 8.redis高级功能 [1.redis的慢查询](redis/redis高级功能/redis的慢查询.md) [2.redis-pipeline](redis/redis高级功能/redis-pipeline.md) [3.redis-发布订阅功能](redis/redis高级功能/redis发布订阅.md) [4.redis-bitmap](redis/redis高级功能/redis--bitmap.md) [5.redis-HyperLogLog](redis/redis高级功能/redis---HyperLogLog.md) [6.redis-GEO](redis/redis高级功能/redis----GEO.md) ## 9.redis持久化 [1.redis持久化--RDB](redis/redis持久化/redis持久化---RDB.md) [2.redis持久化--AOF](redis/redis持久化/redis持久化--AOF.md) [3.redis持久化--RDB与AOF抉择](redis/redis持久化/redis持久化--RDB与AOF抉择.md) [4.redis--持久化常见问题](./redis/redis持久化/redis--持久化常见问题.md) ## 10.redis复制的原理与优化 [1.主从复制原理](./redis/redis复制的原理与优化/主从复制.md) [2.主从复制故障处理与常见问题](./redis/redis复制的原理与优化/主从复制故障处理与常见问题.md) ## 11.redis---Sentinel(高可用) [1.redis--sentinel基础](./redis/redisSentinel/redis--sentinel基础.md) [2.redis--sentinel原理](./redis/redisSentinel/redis-sentinel原理解析.md) [3.redis-sentinel开发运维常见问题](./redis/redisSentinel/redis-sentinel开发运维常见问题.md) ## 12.redis cluster (redis集群) [1.redis-cluster基础](./redis/redis-cluster/redis-cluster基础.md) [2.集群伸缩](./redis/redis-cluster/集群伸缩.md) [3.客户端路由](./redis/redis-cluster/客户端路由.md) [4.故障转移](./redis/redis-cluster/cluster故障转移.md) [5.redis-cluster开发运维常见问题](./redis/redis-cluster/redis-cluster开发运维常见问题.md) [6.redis-cluster总结](./redis/redis-cluster/redis-cluster总结.md) ## 13.缓存的使用和设计 [1.缓存的收益与成本](./redis/缓存/缓存的收益与成本.md) [2.缓存的更新策略](./redis/缓存/缓存的更新策略.md) [3.缓存的粒度控制](./redis/缓存/缓存的粒度控制.md) [4.缓存穿透问题](./redis/缓存/缓存穿透问题.md) [5.无底洞问题](./redis/缓存/无底洞问题.md) [6.热点key的重建优化](./redis/缓存/热点key的重建优化.md) [7.缓存雪崩问题](./redis/缓存/缓存雪崩问题.md) **总结** + 缓存收益:加速读写,降低后端存储负载 + 缓存成本: 缓存和存储数据不一致、代码维护成本、运维成本 + 推荐结合剔除、超时、主动更新三种方案共同完成 + 穿透问题: 使用缓存空对象和布隆过滤器来解决,注意各自使用场景与局限性 + 无底洞问题:分布式缓存中,更多机器并不能保证有更高性能!四种批量操作方式:串行命令、串行IO、并行IO、hash_tag + 雪崩问题: 缓存层高可用、客户端降级、提前演练是解决雪崩问题的重要方法 + 热点key问题:互斥锁、永不过期可以解决热点key重建的问题,需要了解使用各自的成本 ## 14.redis云平台cachecloud [1.redis云平台cachecloud基础](./redis/redis云平台/redis云平台cachecloud基础.md)