Redis的五大基本类型
String(字符串) Hash(哈希) List(列表) Set(集合) Sorted Set(有序集合)
其中集合与有序集合都是通过哈希表实现的。
字符串 String
设置key-value
- 设置指定key的值
set key value
- 设置key值为value并返回原value值
getset key
- 设置多个key的值
mset key1 value1 key2 value2 ......
- 设置key时添加过期时间以秒为单位
setex key seconds value
- 设置key时添加过期时间以毫秒单位
psetex key milliseconds value
- 当key不存在时设置value
setnx key value
- 当key都不存在时设置多个key-value对
msetnx key1 value1 key2 value2 ......
获取key的值
- 获取单个key的值
get key
- 获取一个或多个key的值
mget key1 key2 ......
其他
- 获取key存储字符串的长度
strlen key
- 将key中存储的数字值增1
incr key
- 将key中存储的数字值增加指定增量值
incrby key increment
- 将key中存储的数字值增加指定浮点量值
incrbyfloat key increment
- 将key中存储的数字值减1
decr key
- 将key中存储的数字值减去指定的减量值
decrby key decrement
- 如果key存在且是一个字符串 将value追加到原值末尾
append key value
哈希 Hash
设置hash
- 将哈希表 key 中的字段 field 的值设为 value
hset key field value
- 同时将多个 field-value 对设置到哈希表 key 中
hmset key field1 value1 field2 values ......
- 只有在字段 field 不存在时,设置哈希表字段的值
hsetnx key field value
查看hash中存储值
- 查看指定key中字段
hkeys key
- 查看指定key中所有值
hvals key
- 获取在哈希表中指定 key 的所有字段和值
hgetall key
- 查看指定key中一个或多个filed存储值
hget key fileld1 field2
其他
- 获取哈希表中字段数量
hlen key
- 删除一个或多个hash表字段
hdel key field1 field2 ......
- 为哈希表 key 中的指定字段的整数值加上增量
hincrby key field increment
- 为哈希表 key 中的指定字段的浮点数值加上增量
HINCRBYFLOAT key field increment
列表 List
向列表中添加/修改值
- 将一个或多个值插入列表头部 最后的值在列表头部
lpush key value1 value2 ......
- 将一个或多个值插入到已存在的列表头部
lpushx key value
- 在一个列表中添加一个或多个值
rpush key value1 value2 ......
- 为存在的列表添加值
rpushx key value
- 在列表的元素前或者后插入元素
linsert key before|after pivot value
- 通过索引设置列表元素的值
lset key index value
查看/弹出 列表中元素
- 获取指定范围内元素值
lrange key start stop
- 移出并获取列表第一个元素
lpop key
- 移出并获取列表最后一个元素
rpop key
- 移出并获取一个或多个列表的第一个元素如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
blpop key1 [key2] timeout
- 移出并获取一个或多个列表的最后一个元素
brpop key1 [key2] timeout
- 从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
brpoplpush source destination timeout
其他
- 获取列表长度
llen key
- 移出列表元素 count表示如果有多个value移出的个数
lrem key count value
- 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
ltrim key start stop
集合 Set
添加元素
- 向集合中添加一个或多个元素
sadd key member1 [member2]
查看集合
- 查看集合中所有成员
smembers key
- 移除并返回集合中的一个随机元素
spop key
- 返回集合中一个或多个随机数
srandmember key [count]
集合元素移出
- 移除集合中一个或多个成员
srem key member1 [member2]
集合间操作
- 将 member 元素从 source 集合移动到 destination 集合
smove source destination member
- 返回所有其他集合与第一个的差集
sdiff key1 [key2] ......
- 返回所有集合的交集
sinter key1 [key2] ......
- 返回所有集合的并集
sunion key1 [key2] ......
- 返回所有集合差集并存储到destination 中
sdiffstore destination key1 [key2]
- 返回所有集合交集并存储到destination 中
sinterstore destination key1 [key2]
- 返回所有集合并集并存储到destination 中
sunionstore destination key1 [key2]
其他
- 获取集合成员数
scard key
- 判断member元素是否属于集合
sismember key member
有序集合 sorted set
与集合不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
向集合中添加元素
- 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zadd key score1 member1 [score2 member2]
查看集合中元素
- 通过索引区间返回有序集合成指定区间内的成员 分数从低到高
zrange key start stop [WITHSCORES]
- 通过字典区间返回有序集合的成员 字典 如 (b [c 分数从低到高
zrangebylex key min max [LIMIT offset count]
- 通过分数返回有序集合指定区间内的成员 分数从低到高
zrangebyscore key min max [WITHSCORES] [LIMIT]
- 通过索引返回指定区间内值 分数从高到低
zrevrange key start stop [WITHSCORES]
- 通过字典区间返回有序集合的成员 字典 如 (b [c 分数从高到低
zrevrangebylex key min max [LIMIT offset count]
- 通过分数返回有序集合指定区间内的成员 分数从高到低
zrevrangebyscore key min max [WITHSCORES] [LIMIT]
移除集合中元素
- 移除集合中一个或多个成员
zrem key menber1 [member]
- 移除有序集合中给定的排名区间的所有成员
zremrangebyrank key start stop
- 移除有序集合中给定的字典区间的所有成员
zremrangebylex key min max
- 移除有序集合中给定的分数区间的所有成员
zremrangebyscore key min max
其他
- 获取有序集合成员数
zcard key
- 计算在有序集合中指定区间分数的成员数
zcount key min max
- 在有序集合中计算指定字典区间内成员数量
zlexcount key min max
- 返回有序集合中指定成员的索引
zrank key member
- 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
ZREVRANK key member
- 返回有序集中,成员的分数值
zscore key member
- 有序集合中对指定成员的分数加上增量 increment
zincyby key increment member
键 KEYS
- DEL key 该命令用于在 key 存在时删除 key。
- EXISTS key 检查给定 key 是否存在。
- EXPIRE key seconds 为给定 key 设置过期时间。
- EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。
- PEXPIRE key milliseconds 设置 key 的过期时间亿以毫秒计。
- PEXPIREAT key milliseconds-timestamp 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
- KEYS pattern 查找所有符合给定模式( pattern)的 key 。
- MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中。
- PERSIST key 移除 key 的过期时间,key 将持久保持。
- PTTL key 以毫秒为单位返回 key 的剩余的过期时间。
- TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
- RANDOMKEY 从当前数据库中随机返回一个 key 。
- RENAME key newkey 修改 key 的名称
- RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey 。
- TYPE key 返回 key 所储存的值的类型。