基于c语言的key、values型的非关系型数据库
字符串 哈希 list set zset
Redis 持久化、搭建集群、数据备份和恢复、合理的设置过期时间
RDB和AOF
一个是数据快照一个写命令
RDB | AOF | |
---|---|---|
是否默认开启 | 默认 | 手动开启 |
备份文件大小 | 小 | 大 |
性能 | 好 | 差 |
资源占用 | 高 | 低 |
数据完整性 | 差 | 高 |
文件存储方式 | 数据快照 | 写命令 |
恢复速度 | 快 | 慢 |
热点数据、经常访问的数据
Redis默认使用的是“惰性删除”(Lazy deletion)策略,即当一个键过期时,不会立即从内存中删除,而是在下次访问该键时检查是否过期,如果过期则删除。这种策略可以避免因为删除过期键造成的额外开销,提高性能。但是,如果过期键一直没有被访问,那么就会一直占用内存,造成内存浪费。为了避免这种情况,Redis也提供了主动删除过期键的策略。可以通过在配置文件中设置maxmemory-policy选项来选择删除策略。
增加服务器内存、使用数据淘汰策略、使用 Redis 持久化功能、使用 Redis 集群
内存使用过高、持久化性能问题、并发操作过多、过多的 key 操作
主从集群、哨兵集群、分片集群
主从集群、哨兵集群、分片集群 6台服务器
缓存击穿指的是当某个 key 在缓存中不存在,但是在数据库中存在,同时有大量并发请求同时请求该 key 时,会导致大量的请求直接穿透缓存,直接查询数据库,导致数据库压力过大,缓存失去了存在的意义。
办法
缓存穿透是指查询一个不存在的数据,由于缓存中没有该数据,每次请求都会穿透到数据库层,导致数据库压力过大,影响系统性能。
缓存穿透问题可以通过以下几种方式来解决:
缓存雪崩是指由于缓存中的大量数据同时失效,导致一大批请求直接穿透到数据库,导致数据库瞬间压力过大,甚至崩溃,导致系统不可用的情况。
缓存雪崩问题可以通过以下几种方式来解决:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。