读书笔记-《Redis实战》

第一章:初识Redis

常见DB对比表,由于未标明各个DB的版本,这个表格其实并不准确,特别是附加功能栏。

名称 类型 数据存储结构 查询类型 附加功能
Redis 使用内存的非关系型数据库 字符串、列表、集合、有序集合、散列表 每种数据类型都有专属指令;批量操作;不完全的事务支持 发布与订阅;主从复制;持久化;脚本
memcached 使用内存的键值对缓存 键值对

创建、读取、更新、删除及其他命令

多线程服务器
MySQL 关系型数据库 数据库包含多个表,表包含多行记录;可以处理表的视图;支持空间与第三方扩展 SELECT、INSERT、UPDATE、DELETE;内置函数;自定义存储过程 支持ACID;主从复制;主主复制
PostgreSQL 关系型数据库 数据库包含多个表,表包含多行记录;可以处理表的视图;支持空间与第三方扩展;支持定制类型 SELECT、INSERT、UPDATE、DELETE;内置函数;自定义存储过程 支持ACID;主从复制;多主复制
MongoDB 使用硬盘的非关系型文档存储 数据库包含多个表,表包含无schema的BSON文档 创建、读取、更新、删除、条件查询及其他命令 支持Map-Reduce;主从复制;分片;空间索引

Map-Reduce(映射与归约):MapReduce是面向大数据并行处理的计算模型、框架和平台。

磁盘是如何存储数据的?

信息存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化。因此硬盘可以以二进制来存储表示文字、图片等信息。

机械盘和固态盘的区别

机械盘:数据是存储的扇区的,读写是依靠磁头的摆动寻址的。顺序读写主要时间花费在了传输时间,随机读写因为内存碎片需要多次寻道和旋转延迟。

固态盘:是由控制单元和固态存储单元(DRAM或FLASH芯片)组成,存储单元负责存储数据,控制单元负责读取、写入数据。由于固态硬盘没有普通硬盘的机械结构,也不存在机械硬盘的寻道问题。

顺序读写和随机读写对比

随机读写是相对顺序读写而言的,所谓随机读写,是指可以在任何时候将存取文件的指针指向文件内容的任何位置。一般情况下SAS机械硬盘主要是看顺序读写性能,SSD固态盘主要看随机读写性能。

文件的操作方式

顺序读写:文件指针只能从头移动到尾。

随机读写:文件指针可以随意移动,根据需要。

特殊情况

多进程情况下的顺序读写,需要不断地切换磁头到不同的文件,其实也已经表现为随机写了。

第二章:使用Redis构建Web应用

Cookie类型 优点 缺点
签名 所有信息放Cookie,签名实现简单 容易忘记进行签名或者验证签名,从而造成安全漏洞
令牌 只存令牌,Cookie体积小 需要在服务器中存储更多的信息

第三章:Redis命令

已在《Redis设计与实现》中学习,跳过

第四章:数据安全与性能保障

已在《Redis设计与实现》中学习,跳过

第五章:使用Redis构建支持程序

- 使用Redis记录日志

- 使用Redis实现计数器并进行数据统计

- 查询IP地址所属的城市与国家

- 服务的发现与配置

第六章:使用Redis构建应用程序组件

- 构建两个前缀匹配自动补全程序

- 通过构建分布式锁来提高性能

- 通过开发计数信号量来控制并发

- 构建两个不同用途的任务队列

- 通过消息拉取系统来实现延迟消息传递

- 学习如何进行文件分发

第七章:基于搜索的应用程序

偏业务,跳过

第八章:构建简单的社交网站

偏业务,跳过

第九章:降低内存占用

- 短结构

- 分片结构

- 打包存储二进制和字节

第十章:扩展Redis

- 扩展读性能

- 扩展写性能和内存容量

- 扩展复杂的查询

第十一章:Redis的Lua脚本编程

- 在不编写C代码的清空下添加新功能

- 使用Lua重写锁和信号量

- 移除WATCH/MULTI/EXEC事务

- 使用Lua对列表进行分片

发布了25 篇原创文章 · 获赞 12 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_25498677/article/details/96438685