没有合适的资源?快使用搜索试试~ 我知道了~
首页Redis实战指南:Key-Value存储与核心技术详解
Redis实战指南:Key-Value存储与核心技术详解
需积分: 9 3 下载量 168 浏览量
更新于2024-07-19
收藏 4.99MB PDF 举报
《Redis实战》是一本深入介绍Redis开发的实用指南,作者是微博账号“红丸出品”(http://weibo.com/u/2446082491)。本书共分为两大部分,旨在帮助读者快速理解和掌握Redis的关键概念和技术。 第一章是Redis的快速入门,首先介绍了什么是Key-Value存储系统,列举了Voldemort、Dynamo、memcached、Cassandra等其他此类系统的比较,强调了Redis在大规模互联网应用中的优势,如高效的数据处理和云存储场景中的应用。章节中还详细解释了为何选择Redis,包括其对高并发、内存存储和API支持的特性,以及适用的不同业务场景。 随后,作者指导读者如何安装和配置Redis,包括基础的数据库操作,如设置、读写、同步和性能优化。这部分内容对于初次接触Redis的开发者来说至关重要,因为它们涉及到了实际操作的基础知识。 第二章专门探讨了Redis的数据类型及其操作。主要包括strings类型,如set、setnx、setex、get等命令,这些用于存储和检索字符串值。接着是hashes类型,介绍了hset、hget、hmset等操作,这些数据结构适合存储关联数据。此外,lists类型,如lpush、rpush和linsert,提供了列表的增删改查功能。每个数据类型的详细介绍都配以示例,以便读者理解其在实际项目中的应用场景。 通过这本书,读者不仅能学习到Redis的核心原理,还能掌握如何在实际项目中高效地利用其功能。无论是作为初级开发者寻求Redis入门,还是有经验的开发者想要深入了解Redis的深层次操作,这本书都是一个宝贵的资源。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/9903892/bgc.jpg)
《红丸出品》 http://weibo.com/u/2446082491
12 / 71
和 GET(key) 等;
分布式:多台机器(nodes)同时存储数据和状态,彼此交换消息来保持数据一致,可
视为一个完整的存储系统。
数据一致:所有机器上的数据都是同步更新的、不用担心得到不一致的结果;
冗余:所有机器(nodes)保存相同的数据,整个系统的存储能力取决于单台机器(node)
的能力;
容错:如果有少数 nodes 出错,比如重启、当机、断网、网络丢包等各种 fault/fail 都
不影响整个系统的运行;
高可靠性:容错、冗余等保证了数据库系统的可靠性。
1.2.3 Redis 实际应用案例
目前全球最大的 Redis 用户是新浪微博,在新浪有 200 多台物理机,400 多个端口正在运行
着 Redis, 有+4G 的数据跑在 Redis 上来为微博用户提供服务。
在新浪微博 Redis 的部署场景很多,大概分为如下的 2 种:
第一种是应用程序直接访问 Redis 数据库
![](https://csdnimg.cn/release/download_crawler_static/9903892/bgd.jpg)
《红丸出品》 http://weibo.com/u/2446082491
13 / 71
第二种是应用程序直接访问 Redis,只有当 Redis 访问失败时才访问 MySQL
同时,Digg 的一项新功能,添加了对文章浏览数的显示,这一功能的一大卖点是其实时性。
![](https://csdnimg.cn/release/download_crawler_static/9903892/bge.jpg)
《红丸出品》 http://weibo.com/u/2446082491
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 支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。
![](https://csdnimg.cn/release/download_crawler_static/9903892/bgf.jpg)
《红丸出品》 http://weibo.com/u/2446082491
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页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/47cc237835474fc6966d6897ca2f81c7_myworld0412.jpg!1)
Ai骄傲的小萝莉
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)