Redis In Action 第一章 初识Redis

本章介绍了Redis作为高速非关系数据库的特点,对比了其与其他数据库的区别,详述了Redis的数据持久化方法,包括点转储和AOF文件。此外,探讨了主从复制在扩展读性能和故障转移中的作用。最后,概述了Redis的五种数据结构:String、List、Set、Hashes和Zset,以及它们的基本操作。
摘要由CSDN通过智能技术生成

(一)初识 Redis

本章主要内容

  • Redis与其他软件的异同
  • Redis的用法
  • 使用Python实例代码与Redis进行简单的互动
  • 使用Redis解决实际问题

1.1 Redis简介

Redis是一个速度非常快的非关系数据库,它可以存储key与五种不同类型的value之间的映射,可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能。

1.1.1 Redis与其他数据库和软件的对比

图1-1 一些数据库和缓存服务器的特性与功能

1.1.2 附加特性

  • 数据持久化

Redis是使用内存存储的非关系数据库,那么当服务器被关闭时,服务器存储的数据也需要被保存下来。Redis有两种不同形式的持久化方法,他们都可以用小而紧凑的格式存储在内存中的数据写入硬盘。

第一种持久化方法是将时间点转储(point-in-time dump),转储操作既可以在“指定时间段内有指定数量的写操作执行”这一条件被满足时执行,又可以通过调用两条转储到硬盘(dump-to-disk)命令中的任何一条来执行。

第二种持久化方法将所有修改了数据库的命令都写入一个只追加(append-only)文件里,用户可以根据数据的重要程度,将只追加写入设置为从不同步(sync)、每秒同步一次或者每写入一个命令就同步一次。

  • 主从复制

为了扩展redis的读性能,为Redis提供故障转移支持,Redis实现了主从复制特性:执行复制的从服务器会连接上主服务器,接收主服务器发送的整个数据库的初始副本(copy);之后主服务器执行的写命令,都会被发送给所有连接着从服务器去执行,从而实时地更新从服务器的数据集。因为从服务器包含的数据会不断地更新,所以客户端可以向任意一个从服务器发送读请求,以此来避免对主服务器进行集中式的访问。

1.1.3 使用Redis的理由

在Redis里面,用户可以直接使用原子的INCR命令及其变种来计算聚合数据,并且因为Redis将数据存储在内存里面,而且发送给Redis的命令请求并不需要经过典型的查询分析器(parser)或者查询优化器(optimizer)进行处理,所以对Redis存储的数据执行随机写的速度是很快的。

使用Redis而不是关系数据库或者其他硬盘存储数据库,可以避免写入不必要的临时数据,也免去了对临时数据进行扫描或者删除的麻烦,并最终改善程序的性能。

1.2 Redis数据结构简介

图1-2 Redis提供的五中数据结构映射

1.2.1 Redis String

String命令

图1-3 字符串命令

SET、GET、DEL的使用示例

图1-4 SET、GET、DEL的使用示例

1.2.2 Redis List

List命令

图1-5 List 命令

RPUSH、LRANGE、LINDEX、LPOP的使用示例

图1-6 RPUSH、LRANGE、LINDEX、LPOP的使用示例

1.2.3 Redis Set

Set 命令

图1-7 Set命令

SADD、SMEMBERS、SISMEMBER、SREM的使用示例

图1-8 SADD、SMEMBERS、SISMEMBER、SREM的使用示例

1.2.4 Redis Hashes

Hashes命令

图1-9 Hashes命令

HSET、HGET、HGETALL、和 HDEL的使用示例

图1-10 HSET、HGET、HGETALL、和 HDEL的使用示例

1.2.5 Redis Zset

Zset命令

图1-11 Zset命令

ZADD、ZRANGE、ZRANGEBYSCORE、和ZREM的使用示例

图1-12 ZADD、ZRANGE、ZRANGEBYSCORE、和ZREM的使用示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值