Redis实战

Redis是一个远程内存数据库,它提供了五种不同类型的数据结构。

Redis简介

Redis是一个速度非常快的非关系型数据库,它可以存储键(key)和五种基本类型的值(value)的映射关系。

Redis实战_第1张图片
一些数据库和缓存数据库的特性和功能

Redis数据结构简介

Redis可以存储五种不同数据结构类型的值,这五种类型分别为:STRING、LIST、SET、HASH、ZSET

Redis实战_第2张图片
Redis提供的五种结构

Redis命令

Redis中的自增命令和自减命令
INCR: INCR key-name 将键存储的值加上1
DECR: DECR key-name 将键存储的值减去1
INCRBY: INCRBY key-name amount 将键存储的值加上amount
DECRBY: DECRBY key-name amount 将键存储的值减去amount
INCRBYFLOAT: INCRBYFLOAT key-name amount 将键存储的值加上浮点数amount,这个命令在Redis2.6或以上版本可用

Redis处理子串和二进制位的命令
APPEND: APPEND key-name value  将值value追加到给定键key-name当前存储的值的末尾
GETRANGE: GETRANGE key-name start end 获取一个由偏移量start至偏移量end范围内所有字符组成的子串,包括start和end在内
SETRANGE: SETRANGE key-name offset value  将从start偏移量开始的子串设置为给定值
GETBIT: GETBIT key-name offset
SETBIT: SETBIT key-name offset value
BITCOUNT: BITCOUNT key-name [start end]
BITOP: BITOP operation dest-key key-name

Redis处理列表的命令
RPUSH: RPUSH key-name value [value...] 将一个或多个值推入列表的右端
LPUSH: LPUSH key-name value [value...] 将一个或多个值推入列表的左端
RPOP: RPOP key-name 移除并返回列表最右端的元素
LPOP: LPOP key-name 移除并返回列表最左端的元素
LINDEX: LINDEX key-name offset
LRANGE: LRANGE key-name start end
LTRIM: LTRIM key-name start end

Redis阻塞式的列表弹出命令以及在列表之间移动元素的命令
BLPOP: BLPOP key-name [key-name...] timeout
BRPOP: BRPOP key-name [key-name...] timeout
RPOPLPUSH: RPOPLPUSH source-key dest-key
BRPOPLPUSH: BRPOPLPUSH source-key dest-key timeout

基本的Redis事务

Redis的基本事务需要用到MULTI命令和EXEC命令,这种事务可以让一个客户端在不被其他客户端打断的情况下执行多个命令,和关系数据库那种可以在执行的过程中进行回滚的事务不同,在Redis里面,被MULTI命令和EXEC命令包围的所有命令会一个接一个地执行,直到所有命令都执行完毕为止。当一个事务执行完毕之后,Redis才会处理其他客户端的命令。

键的过期时间

当我们说一个键带有生存时间或者一个键会在特定时间之后过期时,指的是Redis会在这个键的过期时间到达时自动删除该键。一些命令中,只有少数几个命令可以原子地为键设置过期时间,并且对于列表、集合、散列和有序集合这样的容器来说,键过期命令只能为整个键设置过期时间,而没办法为键里面的单个元素设置过期时间(为了解决这个问题,本书在好几个地方都使用了存储时间戳的有序集合来实现针对单个元素的过期操作)。

持久化选项

Redis提供了两种不同的持久化方法来将数据存储到硬盘里面,一种方法叫快照,它可以将存在于某一时刻的所有数据都写入硬盘里面。另一种方法叫只追加文件,它会在执行写命令时,将被执行的写命令复制到硬盘里面。

你可能感兴趣的:(Redis实战)