Redis的读书笔记 第一章:初识Redis
2019-07-26 本文已影响0人
super_pcm
Redis的读书笔记系列的书是《Redis开发与运维》,这本书站在开发及运维的角度介绍Redis。为了更好学习Redis,把书本中的部分内容记录下来,由于本人是一个运维所以记录的内容更多是偏向于运维方面的。以下是书本的内容。
1. 初识Redis
1.1 Redis的特性
- 速度快:官方给出的读写性能可以达到10万/秒
- 基于键值对的数据结构服务器:提供了5种数据结构(字符串、哈希、列表、集合、有序集合),并衍生除了位图和HyperLogLog两种神奇的数据结构。
- 丰富的功能:提供键过期,可以用来实现缓存;提供发布订阅功能,用来实现消息系统;支持Lua脚本功能,可以利用Lua创造出新的Redis命令;提供简单的事务功能;提供了流水线(Pipiline)功能,这样客户端能将一批命令一次性传到Redis,减少网络开销。
- 简单稳定:主要表现为代码少,使用的是单线程,服务端处理模型更加简单。
- 客户端语言多:客户端列表参考
- 持久化:提供了RDB和AOF两种持久化方案
- 主从复制:提供了复制功能,实现了多个相同数据的Redis副本,复制功能是分布式Redis的基础。
- 高可用和分布式:在2.8版本开始正式提供了Redis Sentinel,它能保证Redis节点的故障发现和自动转移。Redis从3.0版本正式提供了实现分布式的Redis Cluster,它是Redis真正的分布式实现,提供了高可用、读写和容量的拓展性。
1.2 Redis使用场景
根据以上的特性,可以知道redis的典型的使用场景
- 缓存:缓存机制几乎在所有的大型网站都有使用,可以加快访问速度,降低数据库的压力。
- 排行榜系统:利用有序集合的数据结构来实现
- 计数器的应用: 比起关系型数据库,Redis天然支持计数功能,并且性能很好。
- 社交网络:主要报错赞/踩、粉丝、共同好友/喜好这些,主要还是Redis的数据结构更加合适。
- 消息队列系统:利用Redis提供的发布订阅功能和阻塞队列功能。虽然比不上专业的消息队列,但是对于一般的消息队列功能基本可以满足。
1.3 Redis不可以做什么
- 大规模的数据存储:Redis的数据都是丢在内存里面的,如果你用Redis来存放每天有几亿行的数据的话,那基本是个无底洞了,经济成本相当高。
- 冷数据:站在数据冷热的角度看,数据分为热数据和冷数据,热数据通常是指需要频繁操作的数据,反之为冷数据。冷数据没什么查询,那就没必要存放在Redis中了,避免对内存的浪费。
1.4 Redis的安装部署
Redis在CentOS7下的安装请查看这个 CentOS7下安装Redis4.0,Redis在Windows下的安装部署就不做记录了。
提问:Redis为什么会那么快?
- 数据是放在内存里面的
- redis是用C语言来实现,距离操作系统更近
- reids使用的是单线程,预防了多线程可能产生的竞争问题
- redis的源代码优秀