四.常用命令
1.key
-
keys 指定的key
- 返回指定的key是否存在
- 如果存在,返回存在的key有哪些
- 如果不存在,返回
(empty list or set)
- 支持通配符
- keys *:查询所有的key
-
exists key1 key2 ...
- 判断指定的key是否存在
- 如果存在返回存在的key有多少个
- 如果不存在返回0
-
expire key 时间(秒)
- 设置指定的key的生存时间
- 即指定key在多少秒之后失效
- 如果时间为0,相当于删除操作
-
ttl key
- 查询指定的key剩余的生存时间是多少
- 返回值为当前剩余的时间
- -2表示已经过期,实际上就是没有这个key
- -1表示永不过期,实际上就是没有设置生存时间
-
type key
- 判断当前key的类型
- 返回值对应的是五大数据类型
-
del key1 key2 key3
- 批量删除指定的key
-
flushdb
- 清空当前库
2.string
-
set key value
- 设置一个值
- 若key不存在,表示新增一条数据
- 若key已经存在,则表示覆盖对应的key的数据
-
get key
- 获取指定的key的数据
- 如果数据是中文,默认方式查看不了
- 在登录客户端的时候可以使用
./redis-cli --raw
的方式进行客户端的方式 - 通过该方式访问时可以查看中文数据
-
append key value
- 设置一个值
- 若key不存在,则表示新增一条数据
- 若key存在,则修改对应的数据,表示将新的值追加到原有的数据的末尾,生成新的数据
-
strlen key
- 获取指定的key的数据的长度
-
incr/decr/incrby/decrby
incr key
- 将指定可以所对应的数据的值加1,key的值只能是数字
- 若key不存在,则新增一条数据,其值自动设置为1
decr num
- 将指定可以所对应的数据的值减1,key的值只能是数字
- 若key不存在,则新增一条数据,其值自动设置为-1
incrby key num
- 将指定可以所对应的数据的值加num,key的值只能是数字
- 若key不存在,则新增一条数据,其值自动设置为num
decrby key num
- 将指定可以所对应的数据的值减num,key的值只能是数字
- 若key不存在,则新增一条数据,其值自动设置为-num
-
getrange/setrange
-
getrange key begin end
- 获取指定的begin位置到end位置的值
- 类似于Java中的subString方法,截取字符串
- 索引位置从0开始,包含开始与结束位置的字符
- 0 -1表示所有字符
-
setrange key index value
- 将指定的key的数据从索引位置index开始的值替换成指定的数据value
- 当原有字符串剩余长度小于value的长度,则自动延长原字符串长度
- 当原有字符串剩余长度大于value的长度,则只替换对应长度部分的数据
set name admin setrange name 3 admin#此时name的值为admadmin setrange name 3 abc#此时name的值为admabcin
-
-
setex/setnx
setex key seconds
value- 新增一条数据,key=value
- 且设置该数据的生存时间为seconds,单位:秒
- 若key存在,则覆盖
setnx key value
- 如果key不存在,新增一条数据,key=value
- 如果key存在,不做任何改变
-
mset/mget/msetnx
mset key1 value1 key2 value2 ...
- 批量添加
- 相当于多次执行set操作
- 如果key存在,覆盖
- 如果key不存在,新增
mget key1 key2 key3
- 批量获取指定key的数据
msetnx key1 value1 key2 value2...
- 批量进行setnx操作
- 其中只要有任意一个key存在,则不做任何操作
-
getset key value
- 先执行get操作,后执行set操作
- 返回的是原来key的数据
- 然后将指定的key的数据替换成新的数据value
- 相当于先执行了get key
- 后执行set key value
3.hash
-
hset/hget
hset key field value
- 若key不存在,则新增一条数据,其值是一个键值对,field-value的形式
- 若key存在,则覆盖
hget key field
- 获取指定的key的hash的key为field的数据
-
hmset/hmget/hgetall
hmset key f1 v1 f2 v2...
- 批量添加hash中的数据
hmget key f1 f2...
- 批量获取hash中指定filed的数据
hgetall key
- 获取对应的hash中所有的数据
-
hdel key f2 f2..
- 批量删除指定的hash中指定的filed的数据
-
hlen key
- 获取指定的hash中元素的数量
-
hexists key filed
- 判断指定的hash中对应的field是否存在
-
hkeys/hvals
hkeys key
- 返回指定的hash中所有的键值对中的field
hvals key
- 返回指定的hash中所有的键值对中的value
-
hincrby key field num
- 将指定的hash中field所对应的值加上num
- 此时的num必须是整数
-
hincrbyfloat key field num
- 将指定的hash中field所对应的值加上num
- num可以是浮点数
-
hsetnx key field value
- 若key不存在,则新增
- 若key存在,则不做任何操作
4.list
-
lpush key v1 v2...
- 将多个数据插入到指定的列表的头部
- 如果指定的key不存在,新增
- 如果指定的key存在,追加
-
rpush key v1 v2...
- 将多个数据插入到指定的列表的尾部
-
lrange key begin end
- 获取列表中从指定位置begin到end位置的所有元素
- 0 -1表示查询所有的
-
lindex key index
- 获取指定位置的元素
- 从头往尾数
-
llen key
- 获取指定的列表的元素的数量
-
lpop key
- 移除头部的第一个元素
- 返回值为当前移除的元素
-
rpop key
- 移除尾部的第一个元素
- 返回值为当前移除的元素
-
lrem key count value
- 从头部开始删除值为value的元素
- 总共删除count个
- 如果count的值为0,则表示删除所有值为value的元素
- 如果count的值大于值为value的元素的个数,则删除所有值为value的元素
-
ltrim key begin end
- 截取从begin位置到end位置的子元素
- 且将截取后的子元素作为当前列表的新的值
- 实际上做了覆盖操作
-
rpoplpush 源列表 目标列表
- 移除源列表中的尾部的第一个元素
- 并将该元素插入到目标列表中的头部的位置
-
lset key index value
- 修改列表中指定位置的元素的数据
-
linsert key before/after v1 v2
- 在指定的列表的元素v1之前/之后插入一个新的元素v2
- 如果指定的元素v1存在多个相同的,则操作的始终是第一个
5.set
-
sadd/smembers/sismeber
sadd key v1 v2...
- 向一个set中添加多个值,无序的
- 如果key已经存在,则报错
smembers key
- 返回指定的集合中的所有值
sismember key value
- 判断集合中是否存在对应的key中的元素
- 如果存在返回1,否则返回0
-
scard key
- 获取集合中元素的数量
-
srem key value
- 删除集合中指定的元素
-
srandmember key
- 随机返回集合中的一个元素
-
srandmemberkey num
- 随机返回集合中num个元素
-
spop key
- 随机删除集合中的某一个元素
- 并返回删除的元素是谁
-
spop key count
- 随机删除集合中的count个元素
- 并返回删除的元素有哪些
-
smove key1 key2 value
- 将key1集合中的value移动到key2的集合中
-
数学集合
- 差集
sdiff key1 key2...
- 在前一个集合中存在,而后面的集合中不存在的元素
- 交集
sinter key1 key2...
- 多个集合中都存在的元素
- 并集
sunion key1 key2...
- 所有的集合中包含的所有的元素
- 差集
6.zset
-
zadd key score1 value1 score2 value2
- 添加多个数据,score必须是数字
-
zrange key begin end
- 返回begin位置到end位置的元素
- 0 -1表示所有
-
zrangebyscore key minscore maxscore
- 返回score值在minscore与maxscore之间的所有元素
-
zrem key value1 value2...
- 批量删除
-
zcard key
- 获取指定的有序集合中元素的数量
-
zcount key min max
- 获取分数在min与max之间的元素的个数
-
zrank key value
- 获取有序集合中指定value的索引号
-
zscore key value
- 获取有序集合中指定value的score值
-
zrevrank key value
- 获取有序集合中指定value的索引号
- 按照分数降序排序
-
zrevrange key start stop
- 获取有序集合中索引在start到stop之间的所有元素
- 按照分数降序排序
-
zrevrangebyscore key max min
- 获取有序集合中分数在max到min之间所有的元素
- 按照分数降序排序