一、字符串
在redis中,字符串可以存储 字符串、整数、浮点数 三种类型的值。
整数的取值范围和操作系统有关,在32位系统,就是32位有符号整数。在64位系统,就是64位有符号整数。
简单介绍redis‘的自增、自减操作,以及二进制位(bit)和子串(substring)的处理命令。
增减命令 | 用例和描述 |
---|---|
INCR | 自增1 |
DECR | 自减1 |
INCRBY | 带参数amount,增加amount |
DECRBY | 带参数amount,减少amount |
INCRBYFLOAT | 带参数amount,加上浮点数amount |
当用户将一个值存储到redis字符串里面的时候,如果这个值可以被解释为十进制整数或者浮点数,那么redis会察觉到这一点,允许用户对其进行增减操作。空值当作0来处理。不可解释为10进制的数据,增减操作会报错。
字串或二进制命令 | 用例和概述 |
---|---|
APPEND | 追加内容 |
GETRANGE key start end | 获取范围内的字符串,包括头尾 |
SETRANGE key offset value | 从指定位置开始设置字符串 |
GETBIT key offset | 将字符串看作二进制串,返回传中指定偏移量的值 |
SET key offset value | 设置指定偏移量的值 |
BITCOUNT key [start end] | 统计二进制字符串中1的二进制位的数量 |
BITTOP operation destkey keyname [key…] | 对一个或者多个二进制串进行并(AND)、或(OR)等操作,并将结果存储在destkey中 |
二、列表
1. 常用的列表命令
从语义上来说,列表的左端为开头,右端为结尾
命令 | 用例和概述 |
---|---|
RPUSH | 将一个多个值推送到右端 |
LPUSH | … |
RPOP | … |
LPOP | … |
LINDEX | 返回指定偏移量位置的元素 |
LRANGE | 返回指定范围内的元素,包括头尾 |
LTRIM | 对列表进行修剪,只保留范围内的元素,包括头尾 |
组合使用LTRIM和LRANGE可以构建出一个类似于LPOP或者RPOP的功能,但却能一次返回或者弹出多个元素。
2. 高级列表命令
有几个命令可以将元素从一个列表移动到另一个列表,或者阻塞当前的客户端直到其他客户端为列表添加元素为止。
命令 | 用例和概述 |
---|---|
BLPOP [key…] timeout | 从第一个非空的列表的左端取出数据或者阻塞并等待timeout秒直到可弹出的元素出现 |
BRPOP [key…] | … |
RPOPLPUSH sourcekey destkey | 元素转移 |
BRPOPLPUSH sourcekey destkey timeout | 同上,不同的是会阻塞并等待直到有可弹出元素出现 |
对于阻塞弹出命令和弹出并推入命令,最常见的用例就是消息传递和任务队列。
三、集合
集合可以组合和关联多个集合
命令 | 用例 | 描述 |
---|---|---|
SDIFF | SDIFF key-name [key-name …] | 返回差集,存在于第一个集合,但不存在于其他集合 |
SDIFFSTORE | SDIFFSTORE dest-key key-name [key-name …] | 取差集之后放于desk-key |
SINTER | SINTER key-name [key-name …] | 取交集 |
SINTERSTORE | SINTERSTORE dest-key key-name [key-name] | 取交集之后放于dest-key |
SUNION | SUNION key-name [key-name…] | 取并集 |
SUNIONSTORE | SUNIONSTORE dest-key key-name [key-name …] | 取并集存储 |
四、散列
散列类似与关系型数据库的一行记录,非关系型数据库的文档。
HGET 和 HSET命令相当于HMGET HMSET 命令的单参数版本。
五、过期命令
命令 | 示例 | 描述 |
---|---|---|
PERSIST | PERSIST KEY | 移除键的过期时间 |
TTL | TTL KEY | 查看键过期还有多少秒 |
EXPIRE | EXPIRE key seconds | 让键过期在多少秒之后 |
EXPIREAT | EXPIREAT key timestamp | 键的过期时间设置为UNIX时间戳 |
PTTL | PTTL key | 查看键过期还有多少毫秒 |
PEXPIRE | PEXPIRE key millseconds | 在毫秒之后过期 |
PEXPIREAT | PEXPIREAT key timestamo-milliseconds | 键的过期时间设置为毫秒精度的时间戳 |