- 字符串类型【String】
set key value # 设置一个key的值
mset key1 val1 key2 val2 ... # 同时设置多个值
get key # 获取一个key的值
mget key1 key2 ... # 同时获取多个值
strlen key # 返回指定key的字符串长度
append key value # 在指定key后面追加相应的字符串
// 数字计算
incr key # 对key默认加1
incrby key num # 对key增加指定的num
incrfloat key value # 增加指定的浮点数
decr key # 对key减少1
decrby key num # 对key减少指定的num
- 散列类型【Hash】
hset key propretyName value # 散列对象key的属性值proprety设置相应值value
hget key propretyName
hmset key propretyName value propretyName value propretyName value ...
hmget key propretyName propretyName
hgetall key # key 所有属性
- 列表类型【List】
lpush key value # 从头部压入指定的value到key
rpush key value # 从尾部压入指定的value到key
lpop key value # 从头部弹出列表key中指定的值
rpop key value # 从尾部弹出列表key中指定的值
llen key # 返回列表长度,如果不存在则返回0,如果类型不对应则返回错误
lrange key start end # 获取 key 指定区间的元素
ltrim key start end # 截取list,保留指定区间内的元素
- 无序集合类型【Set】
sadd keny member # 添加
srem keny member [member...] # 删除
smove p1 p2 member # 成员移动
scard key # 成员个数
sismember key member # 判断member是否在 key 中
sinter key1 key2 ... keyN # 交集
sunion key1 key2 ... keyN # 并集
sdiff key1 key2 ... keyN # 差集
smembers key # 返回所有member,结果是无序的
- 有序集合类型【Sorted Set】
[key:集合名称; score:成员排序; member:成员名]
zadd key score member # 添加
zrem key member # 删除
zincrby key incr member # 增加指定成员的排序
zrank key member # 按score从小到大的排序并返回指定成员的排名(下标)
zrevrank key member # 按score从大到小排序并返回指定成员的排名(下标)
zcard key # 集合长度
zscore key element # 返回给定元素对应的score
zranger key start end # 按score正序,返回指定区间的元素
zrevrange key start end # 按score逆序,返回指定区间的元素
zremrangebyrank key min max # 删除集合中排名在给定区间的元素
- 二进制
setbit key offset value # 直接设置指定key的二进制位数值
getbit key offset # 获取一个字符串类型键指定位置的二进制位的值(0|1),索引从0开始;如果索引超过的话,则默认返回0
bitcount key [start] [end] #
bitop operation destkey key [key ...] #
- Key 操作
del key # 删除一个key;
# t=O(N) : N 为删除的Key个数;返回删除的个数
dump key # 序列化key,返回序列化的值
restore key ttl serialized-value # 返回序列化
type key # 返回一个key的类型;
# none key不存在
# string 字符串
# list 列表
# set 集合
# zset 有序集合
# hash 哈希表
expire key seconds # 设置key的过期时间; t=O(1)
pexpire key milliseconds # 以毫秒设置key的生存时间; t=O(1)
expireat key timestamp # 按Unix时间戳设置过期时间; t=O(1)
pexpireat key millseconds-timestamp # 以毫秒设置key的生存时间; t=O(1)
keys pattern # 返回所有的key,可以使用通配符; t=O(N) N: key的个数
# ?:单个字符;*:多个字符;[字符...]:字符列表
# 如果数据太多,会出性能问题
exists key # 检查key是否存在;t=O(1)
migrate host port key destination-db timeout [COPY] [REPLACE]
# 传递Key到指定的远程库上,默认是传递成功,则删除
# 在本机执行 dump 命令,在远程实例上执行 restore 命令
move key db # 移动key到指定的DB里面;t=O(1)
object subcommand [args [args]] # 查看Redis对象的结构,用于DEBUG;t=O(1)
persist key # 移除key的生存时间;t=O(1)
ttl key # 返回生存时间; t=O(1); 单位为秒
# key不存在,返回-2; 没有剩余时间为-1;其它时间
pttl key # 返回生存时间; t=O(1); 单位毫秒
randomkey # 随机返回一个key,不删除;t=O(1)
rename key newKey # 重命名key,会覆盖newKey;t=O(1)
renameNx key newKey # 当且仅当newKey不存在时才执行;t=O(1);
sort key [by pattern] [limit offset count] [get pattern [get pattern...]] [asc|desc] [alpha] [store destination]
# 返回或保存给定列表、集合key中经过排序的元素
# 排序默认以数字作为对象,值被解释为双精度浮点数,再比较
# t=O(N+M*log(M)) N 元素数量,M返回的元素数量
例子1:sort key # 默认按数字排序、顺序为:ASC;
例子2:sort key ALPHA # 按字符排序
例子3:sort key limit 0 5 # 限制返回结果(分页?)
例子4:sort key by user_*
# 外部Key排序;
# user_* 为占位符,取出key中的值后,组成 user_key[N],再来排序
例子5:sort key get user_* # 根据排序结果,取出外部Key的值
例子6:sort uidList BY user_level_* GET user_name_*
# 结合BY与GET排序,GET 可以多个
例子7:sort uid GET # GET user_level_* # GET # 获取被排序的值
例子8:sort uid by no-exsits-key # 不存在的Key,实现直接返回未排序结果
例子9:sort uid by no-exsits-key GET # GET user_name_*
# 不排序返回多个结果
例子10:sort uid by user_info_*->level # 哈希表排序
例子11:sort uid by user_info_*->level GET user_info_*->name
# 哈希排序后取值
例子12:sort uid store store_key # 排序后,覆盖形式保存到store_key中
scan cursor [Match pattern] [Count count] # 扫描库中的键
# scan 176 MATCH *11* COUNT 1000
sscan key cursor [Match pattern] [Count count]: 扫描集合键中的元素
# sscan myset 0 match f*
hscan key cursor [Match pattern] [Count count]: 扫描哈希键中的元素
zscan key cursor [Match pattern] [Count count]: 扫描有序集合中的元素与分值