什么是 Redis
什么是 Redis
Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD 许 可)高性能非关系型(NoSQL)的键值对数据库。Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值 支持五种数据类型:字符串、列表、集合、散列表、有序集合。 与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快, 因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。另外,Redis 也经常用来做分布式锁。除此之外, Redis 支持事务 、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。
Redis 有哪些优缺点:
优点: • 读写性能优异, Redis 能读的速度是 110000 次/s,写的速度是 81000 次 /s。
• 支持数据持久化,支持 AOF 和 RDB 两种持久化方式。
• 支持事务,Redis 的所有操作都是原子性的,同时 Redis 还支持对几个操 作合并后的原子性执行。
• 数据结构丰富,除了支持 string 类型的 value 外还支持 hash、set、 zset、list 等数据结构。
• 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。 缺点 • 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。
• Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读 写请求失败,需要等待机器重启或者手动切换前端的 IP 才能恢复。
• 主机宕机,宕机前有部分数据未能及时同步到从机,切换 IP 后还会引入 数据不一致的问题,降低了系统的可用性。
• Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复 杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这 对资源造成了很大的浪费。
缺点:
• 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此 Redis 适合的场景主要局限在较小数据量的高性能操作和运算上。
• Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读 写请求失败,需要等待机器重启或者手动切换前端的 IP 才能恢复。
• 主机宕机,宕机前有部分数据未能及时同步到从机,切换 IP 后还会引入 数据不一致的问题,降低了系统的可用性。
• Redis 较难支持在线扩容,在集群容量达到上限时在线扩容会变得很复 杂。为避免这一问题,运维人员在系统上线时必须确保有足够的空间,这 对资源造成了很大的浪费。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了