Redis 特性 1.速度快 官方给出的数字是读写性能可以达到10万/秒,当然这也取决于机器的性能。大致归纳速度快的四点原因如下: # Redis 的所有数据都是放在内存中的,这也是最主
官方给出的数字是读写性能可以达到10万/秒,当然这也取决于机器的性能。大致归纳速度快的四点原因如下:
# Redis 的所有数据都是放在内存中的,这也是最主要的原因;
# Redis 是用C 语言实现的,“距离” 操作系统更近,执行速度相对会更快;
# Redis 使用了单线程架构,预防了多线程可能产生的竞争问题;
# 源代码精细,集性能与优雅与一身;
与很多键值对数据库不同的是,Redis 中的值不仅可以是字符串,而且还可以是具体的数据结构,这样不仅便于在许多应用场景开发,同时也能提高开发效率。Redis 的全称是Remote Dictionary Server ,它主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合,同时在字符串的基础上演变出了Bitmaps 和HyperLogLog。Redis 3.2 加入了有关GEO的功能。
Redis还提供了许多额外的功能:
# 键过期功能,可以用来实现缓存;
# 发布订阅功能,可以用来实现消息系统;
# 支持lua 脚本功能,可以利用Lua 创造出新的 Redis 命令;
# 简单的事务功能,能在一定程度上保证事务特性;
# 流水线(Pipeline)功能,这样客户端能将一批命令一次性传到Redis 减少了网络的开销;
Redis 的简单主要变现在三个方面。
# 源代码很少,早期版本只有2 万行左右,3.0后添加了集群特性,增至5 万行左右。
# 使用单线程模型,使服务端处理模型变得简单,也使客户端开发简单。
# 不需要依赖于操作系统的类库,Redis 自己实现了事件处理的相关功能
Redis 提供了简单的tcp 通信协议,很多语言可以方便的接入Redis。由于受欢迎,支持Redis 的客户端语言也很多。
Redis 提供了两种持久化方式:RDB 和 AOF。
Redis 提供了复制功能,实现了多个相同数据的Redis 副本,复制功能是分布式Redis 的基础。
Redis 从2.8 版本正式提供了高可用实现 Redis Sentinel,它能保证 Redis 节点的故障发现和故障自动转移。Redis 从3.0 版本正式提供了分布式实现 Redis Cluster,它是 Redis 真正的分布式实现,提供了高可用、读写和容量的扩展性。
合理使用缓存不仅可以加快数据的访问速度,而且能够有效地降低后端数据源的压力。Redis 提供了键过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。
Redis 提供了列表和有序集合数据结构,合理使用这些数据结构可以很方便的构建各种排行榜系统。
Redis 天然支持计数功能而且计数的性能也非常好,可以说是计数系统的重要选择。
赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等是社交网络的必备功能,由于社交网站访问量通常比较大,而且传统关系型数据库不适合保存这种类型数据,Redis 提供的数据结构可以相对容易地实现这些功能。
消息队列系统可以说是一个大型网站的必备基础组件,因为其具有业务解耦、非实时业务削峰等特性。Redis 提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队列比还不够强大,但是对于一般的消息队列功能基本可以满足。
站在数据规模的角度看,数据可以分为大规模数据和小规模数据。因为Redis 的数据是存放在内存中的,如果数据量非常大,经济成本非常高。站在数据冷热的角度看,数据分为冷数据和热数据,热数据通常是指需要频繁操作的数据,反之为冷数据。冷数据放在Redis 中,基本上是对于内存的一种浪费,但是对于热数据可以放在Redis 中加速读写,也可以减轻后端存储的负载,可以说是事半功倍。
切勿当做黑盒使用,只会使用api,要真正了解Redis 的一些原理,从而避免使用了不合适的API 造成不必要的故障。阅读源码(会C 语言 :( )。
参考资料:
《Redis 开发与运维》
--结束END--
本文标题: Redis 简介
本文链接: https://www.lsjlt.com/news/5279.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-11
2024-05-11
2024-05-11
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0