没有合适的资源?快使用搜索试试~ 我知道了~
首页Redis实战:从入门到精通,详解数据类型与操作
Redis实战:从入门到精通,详解数据类型与操作
4星 · 超过85%的资源 需积分: 9 98 下载量 188 浏览量
更新于2024-07-20
收藏 1.58MB PDF 举报
"《Redis实战》是一本深入介绍和实战的IT专业书籍,专注于Redis这一强大的Key-Value存储系统。本书以简洁明快的方式引导读者快速入门Redis,并深入探讨其在大规模互联网应用、云存储以及多种场景中的实际应用价值。Redis作为一款高效、内存驱动的数据库,其核心在于其数据模型,包括strings、hashes、lists等不同类型的数据结构及其丰富的操作方法。 第1章从Key-Value存储系统的基础概念出发,对比了Voldemort、Dynamo、memcached、Cassandra等同类技术,阐述了选择Redis的原因,如其支持高并发、低延迟以及易于扩展。接着,作者详细介绍了Redis的基本特性,如数据类型(如string的set、setnx、getset等)、持久化策略、主从同步机制,以及Redis支持的语言API和适用的场景。 第二章进一步深入,专门讲解了Redis的数据类型及其操作,如strings类型的常用命令如get、set、append、strlen,hashes类型的操作如hset、hmget等,以及lists类型的操作如lpush、rpop等。这些操作展示了Redis的强大灵活性和实用性,使读者能够理解和掌握如何在实际项目中有效地利用这些数据结构进行数据管理。 全书旨在通过实例和理论相结合的方式,帮助读者建立起对Redis的全面理解,无论是初次接触Redis的开发者,还是希望提升Redis技能的专业人员,都能从中受益匪浅。通过阅读本书,读者可以迅速上手Redis,并在处理高并发、实时性要求高的数据存储和检索任务时,发挥出Redis的优势。"
资源详情
资源推荐
12 / 71
和 GET(key) 等;
分布式:多台机器(nodes)同时存储数据和状态,彼此交换消息来保持数据一致,可
视为一个完整的存储系统。
数据一致:所有机器上的数据都是同步更新的、不用担心得到不一致的结果;
冗余:所有机器(nodes)保存相同的数据,整个系统的存储能力取决于单台机器(node)
的能力;
容错:如果有少数 nodes 出错,比如重启、当机、断网、网络丢包等各种 fault/fail 都
不影响整个系统的运行;
高可靠性:容错、冗余等保证了数据库系统的可靠性。
1.2.3 Redis 实际应用案例
目前全球最大的 Redis 用户是新浪微博,在新浪有 200 多台物理机,400 多个端口正在运行
着 Redis, 有+4G 的数据跑在 Redis 上来为微博用户提供服务。
在新浪微博 Redis 的部署场景很多,大概分为如下的 2 种:
第一种是应用程序直接访问 Redis 数据库
13 / 71
第二种是应用程序直接访问 Redis,只有当 Redis 访问失败时才访问 MySQL
同时,Digg 的一项新功能,添加了对文章浏览数的显示,这一功能的一大卖点是其实时性。
14 / 71
而支持此实时浏览量计数的,正是 Redis。
1.3 初识 Redis
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、
Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware
主持。
1.3.1 数据类型
作为 Key-value 型数据库,Redis 也提供了键(Key)和键值(Value)的映射关系。但是,除
了常规的数值或字符串,Redis 的键值还可以是以下形式之一:
Lists (列表)
Sets (集合)
Sorted sets (有序集合)
Hashes (哈希表)
键值的数据类型决定了该键值支持的操作。Redis 支持诸如列表、集合或有序集合的交集、
并集、查集等高级原子操作;同时,如果键值的类型是普通数字,Redis 则提供自增等原子
操作。
1.3.2 持久化
通常,Redis 将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据
持久化:使用截图的方式,将内存中的数据不断写入磁盘;或使用类似 MySQL 的日志方式,
记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。
1.3.3 主从同步
Redis 支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。
15 / 71
1.3.4 性能
相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给 Redis 带来了非常优秀的
性能。读写操作之间有显著的性能差异。
1.3.5 提供 API 的语言
C
C++
C#
Clojure
Common Lisp
Erlang
Haskell
Java
Javascript
Lua
Objective-C
Perl
PHP
Python
Ruby
Scala
Go
Tcl
1.3.6 适用场合
毫无疑问,Redis 开创了一种新的数据存储思路,使用 Redis,我们不用在面对功能单调的数
据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用 Redis 灵活多变的数据结
构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。
下面是 Redis 适用的一些场景:
1、取最新 N 个数据的操作
比如典型的取你网站的最新文章,通过下面方式,我们可以将最新的 5000 条评论的 ID 放在
Redis 的 List 集合中,并将超出集合部分从数据库获取。
使用 LPUSH latest.comments<ID>命令,向 list 集合中插入数据
插入完成后再用 LTRIM latest.comments 0 5000 命令使其永远只保存最近 5000 个 ID
然后我们在客户端获取某一页评论时可以用下面的逻辑
FUNCTION get_latest_comments(start,num_items):
剩余70页未读,继续阅读
太平牛市
- 粉丝: 562
- 资源: 995
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端面试必问:真实项目经验大揭秘
- 永磁同步电机二阶自抗扰神经网络控制技术与实践
- 基于HAL库的LoRa通讯与SHT30温湿度测量项目
- avaWeb-mast推荐系统开发实战指南
- 慧鱼SolidWorks零件模型库:设计与创新的强大工具
- MATLAB实现稀疏傅里叶变换(SFFT)代码及测试
- ChatGPT联网模式亮相,体验智能压缩技术.zip
- 掌握进程保护的HOOK API技术
- 基于.Net的日用品网站开发:设计、实现与分析
- MyBatis-Spring 1.3.2版本下载指南
- 开源全能媒体播放器:小戴媒体播放器2 5.1-3
- 华为eNSP参考文档:DHCP与VRP操作指南
- SpringMyBatis实现疫苗接种预约系统
- VHDL实现倒车雷达系统源码免费提供
- 掌握软件测评师考试要点:历年真题解析
- 轻松下载微信视频号内容的新工具介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功