
Redis
Redis 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。
Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。
与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经常用来做分布式锁。除此之外,Redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。
从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
ThinkWon
敏于观察,勤于思考,善于综合,勇于创新。
展开
-
Redis中缓存雪崩、缓存穿透等问题的解决方案
文章目录缓存雪崩缓存穿透缓存预热缓存更新缓存降级热点数据和冷数据缓存热点key缓存雪崩缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉。解决方案事前:尽量保证整个 redis 集群的高可用性,发现机器宕机尽快补上。选择合适的内存淘汰策略。事中:本地ehcache缓存 + hystrix限流&降级,避免MySQL崩掉事后:利用 r...原创 2019-12-05 11:48:05 · 12716 阅读 · 5 评论 -
这可能是最中肯的Redis规范了
文章目录使用规范冷热数据区分业务数据分离消息大小限制连接数限制缓存 Key 设置失效时间缓存不能有中间态扩展方式首选客户端 hash操作限制严禁使用 Keys严禁使用 Flush严禁作为消息队列使用严禁不设置范围的批量操作禁用 select 函数禁用事务禁用 lua 脚本扩展禁止长时间 monitorKey 规范EndRedis功能强大,数据类型丰富,再快的系统,也经不住疯狂的滥用。通过禁用部分...转载 2019-12-05 11:46:16 · 5933 阅读 · 3 评论 -
Redis开发常用规范
文章目录1.冷热数据分离,不要将所有数据全部都放到Redis中2.不同的业务数据要分开存储3.规范Key的格式4.存储的Key一定要设置超时时间5.对于必须要存储的大文本数据一定要压缩后存储6.线上Redis禁止使用Keys正则匹配操作7.可靠的消息队列服务8.谨慎全量操作Hash、Set等集合结构9.根据业务场景合理使用不同的数据结构类型1.冷热数据分离,不要将所有数据全部都放到Redis中...转载 2019-12-05 11:37:54 · 5683 阅读 · 2 评论 -
阿里云Redis开发规范学习总结
文章目录一、键值设计1. key名设计2. value设计3.【推荐】:控制key的生命周期,redis不是垃圾桶。二、命令使用1.【推荐】 O(N)命令关注N的数量2.【推荐】:禁用命令3.【推荐】合理使用select4.【推荐】使用批量操作提高效率5.【建议】Redis事务功能较弱,不建议过多使用6.【建议】Redis集群版本在使用Lua上有特殊要求:7.【建议】必要情况下使用monitor命...转载 2019-12-05 10:43:30 · 6201 阅读 · 2 评论 -
Redis数据淘汰策略
如果Redis中数据非常多,将服务器中的内存都耗尽,这样就会出现内存溢出的情况,Redis开发组考虑到了这种问题,使用数据淘汰策略可以解决这个问题。可以设置内存最大使用量,当内存使用量超出时,会施行数据淘汰策略。Redis 具体有 6 种淘汰策略:策略描述应用场景volatile-lru从已设置过期时间的数据集中挑选最近最少使用的数据淘汰如果设置了过期时间,且分热数...原创 2019-09-27 13:59:58 · 6637 阅读 · 3 评论 -
Redis与Memcached的区别
两者都是非关系型内存键值数据库,现在公司一般都是用 Redis 来实现缓存,而且 Redis 自身也越来越强大了!Redis 与 Memcached 主要有以下不同:对比参数RedisMemcached类型1. 支持内存 2. 非关系型数据库1. 支持内存 2. 键值对形式 3. 缓存形式数据存储类型1. String 2. List 3. Set 4. Has...原创 2019-09-27 13:47:59 · 5510 阅读 · 2 评论 -
Redis过期键的删除策略
文章目录立即删除惰性删除定时删除Redis使用的策略Redis中有个设置时间过期的功能,即对存储在 redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的 token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理方式,一般都是自己判断过期,这样无疑会严重影响项目性能。我们 set key 的时候,都可以给一个 expir...原创 2019-09-27 11:55:14 · 8719 阅读 · 5 评论 -
Redis持久化
文章目录RDB 持久化(快照持久化)AOF 持久化重写/压缩AOFRedis 4.0 对持久化机制的优化如何选择合适的持久化方式Redis 是内存型数据库,为了之后重用数据(比如重启机器、机器故障之后回复数据),或者是为了防止系统故障而将数据备份到一个远程位置,需要将内存中的数据持久化到硬盘上。Redis 提供了RDB和AOF两种持久化方式。默认是只开启RDB,当Redis重启时,它会优先使用...原创 2019-09-27 11:47:16 · 7311 阅读 · 4 评论 -
Redis数据类型
文章目录STRINGLISTSETHASHZSETRedis主要有5种数据类型,包括String,List,Set,Zset,Hash,满足大部分的使用要求,Redis各数据类型的使用场景可以参考Redis使用场景数据类型可以存储的值操作STRING字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作对整数和浮点数执行自增或者自减操作LIST列表...原创 2019-09-27 11:37:29 · 10707 阅读 · 3 评论 -
Redis使用场景
文章目录计数器缓存会话缓存全页缓存(FPC)查找表消息队列(发布/订阅功能)分布式锁实现其它计数器可以对 String 进行自增自减运算,从而实现计数器功能。Redis 这种内存型数据库的读写性能非常高,很适合存储频繁读写的计数量。缓存将热点数据放到内存中,设置内存的最大使用量以及淘汰策略来保证缓存的命中率。会话缓存可以使用 Redis 来统一存储多台应用服务器的会话信息。当应用服...原创 2019-09-27 11:34:32 · 9199 阅读 · 5 评论 -
Redis总结
Redis简介Redis 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次...原创 2019-08-21 21:37:26 · 14983 阅读 · 5 评论