redis简单了解
一言之
redis是非关系数据库Nosql数据库,速度非常快redis为什么快
redis是用c语言编写的语言性能高的redis是基于内存的,访问速度快且复用的io阻止机制
Redis有什么特点
是最广为人知的。 (当然,对程序来说越快越好,但对男性来说不是。 )Reids有什么特征?
单进程单线程模型的丰富数据类型操作具有高度原子持久性,并支持lua脚本
Redis的数据类型
String类型。 这是一个二进制、安全的字符串,不仅可以存储字符串,还可以存储图像、视频等多种类型,最大长度支持512M。 Redis为每种数据类型提供了丰富的操作命令。 例如,get/mget set/setex/mset/msetnxincr/decrgetsetdel散列类型此类型是由field和关联的value组成的map。 其中,field和value都是字符串类型。 Hash的操作命令如下。 hget/hm get/hgetallhset/hm set/hsetnxhexists/hlen hkeys/hdelhvals列表类型此类型是基于双链表实现的插入顺序字符串元素的集合。 List的操作命令如下。 l push/lpu shx/lpop/r push/rpushx/rpop/l insert/lsetlindex/lrangellen/ltrim集合类型set类型为无顺序集合,与列表类型其操作命令是,sadd/spop/s move/scard sinter/sdiff/sdiff store/s union顺序集合型ZSet是规则的集合型,各要素与双精度型的得分权重相关联ZSet命令: zadd/zpop/z move/z card/zcountzinter/zdiff/zdiff store/z unionReids持久化
持久化是指将内存中的数据写入磁盘并提供服务Redis有两种持久化方法:RDB (默认)和AOF
在RDB时间间隔内,将内存中的数据和操作通过快照保存到redis危机冷风目录下的默认名为dump.rdb的文件中。 通过在部署设置中设置自动快照持久化方法,可以设置redis在n秒内创建快照的时间。 超过此时间节点时,将自动执行快照操作。 此方法方便快捷,但不能保证数据的绝对安全性和可靠性,如果服务器在备份以外的时间段发生故障,则无法实时存储当前状态,数据会丢失。 另外,每次保存RDB文件时,Redis都需要从fork ()中提取子进程,使子进程执行具体的持久化工作,资源消耗较大。 AOFredis的AOF持久化不再是因为每次收到的写命令都通过write函数添加到文件中(缺省为appendonly.aof ),但操作系统在写入文件时使用缓存提高了写入效率可以通过配置文件告诉redis同步数据的时间间隔(默认间隔为每秒同步)。 AOF的速度可能比RDB慢。 ——最大缺点; 也是RBD的优点
一般来说,每秒的fsync性能仍然是——折中方案,这是数据安全和访问性能的折中。 另一方面,如果关闭fsync,则即使在高负荷下也能够使AOF的速度与RDB一样快。
支持lua脚本
请参考我先写的lua脚本~轻松使用~ Redis调用。 我之后在做其他的实战练习。 好吧,谦虚的叔叔
Redis通信协议
redis请求响应模型redis接收由不同参数组成的命令,并在运行后向客户端返回响应。 这种模式由两个异常Redis支持管道操作。 所以客户可以一次发送多个命令,稍后等待回复。 当Redis客户端订阅Pub/Sub模式通道时,协议会更改语义并成为推送协议。 这意味着,服务器在收到消息时会自动向客户端发送新消息,从而使客户端不再需要发送命令。 RESP协议resp(Redis串行化协议)协议与redis服务器端通信。 此协议专为Redis设计,但也可用于其他客户端服务器(客户端-服务器)。 具有简单、分析快、人可读的特点RESP协议支持五种类型的数据类型:简单字符串(Simple Strings )、错误数据(Errors )、整数(Integers )、批量字符串(Bulk Strings )和数组(Arrays )
客户端和服务器之间通信时不同的数据类型由请求/响应消息的第一个字节来区分
:简单字符串以 + 开头错误数据以 - 开头整数以 : 开头批量字符串以 $ 开头// 批量字符串类型,用于表示二进制安全的字符串,最大长度支持512MB。
// 字符串 '非鸽传书' 使用 RESP协议则展示如下:
"$4rn非鸽传书rn"
// 空串
"$0rnrn"
数组以 * 开头// redis客户端请求命令均是存放在数组类型中
// 数组,[非鸽传书, RESP]使用RESP表示如下(注意最后一个换行):
*2
$4
非鸽传书
$4
RESP
// 命令'set name 非鸽传书'
*3
$3
set
$4
name
$4
非鸽传书
不同部分分隔使用 rn(CRLF)。
封面图侵权删