·软件知识库 ·模板素材库
注册 | 登录

您所在的位置: INDEX > j2ee > redis-cli 常用命令及用法

redis-cli 常用命令及用法

许杰 Sun Jul 05 12:01:51 CST 2015 字号:

【连接Redis服务器】

连接Redis方案一:在docker环境启动redis-cli

docker exec -it myredis redis-cli

如果redis服务器有密码,需要带-a参数

docker exec -it myredis redis-cli -a "your password"

myredis表示redis容器名称

-a 密码

连接Redis方案二:使用windows版redis-cli.exe客户端启动redis-cli

redis-cli.exe -h 127.0.0.1 -p 6379

如果redis服务器有密码,需要带-a参数

redis-cli.exe -h 127.0.0.1 -p 6379 -a "123456"

-h 服务器地址

-p 端口

-a 密码

 【查看Redis服务器与客户端版本】

#查看服务器版本

redis-server -v

redis-server --version

#查看客户端版本

redis-cli -v

redis-cli --version

【redis-cli 常用命令及用法】 

String类型

set命令

设置string类型,设置成功返回 OK

格式:set key value [ex seconds | px millisedonds ] [nx | xx]

Redis里的key中可以使用冒号(:),这样可以做出命名空间的效果。

set user:myname "black cat yee"

set user:myname "black cat yee" ex 120

ex参数设置过期时间120秒

get命令

读取string类型,读取成功返回值,读取失败返回(nil)

get user:myname

getset命令

一个key - value,然后把设置之前的值返回.

set user:myname "yee"

getset user:myname "cat yee"

返回yee,注意取回来的是本次设置之前的值,因为get在前,set在后。

incr命令

自增类型,自增1,返回自增后的值

incr age

decr命令

自减类型,自减1,返回自减后的值

decr age

incrby命令

按某个长度自增,返回自增后的值

incrby age 10

decrby命令

按某个长度自减,返回自减后的值

decrby age 10

mset 命令

同时设置多个字符串key

mset country 中国 provice 湖南 city 长沙

mget命令

同时获取多个key的值

mget country provice city

exists命令

判断key是否存在,存在返回1,不存在返回0

exists country

del命令

删除key,删除成功返回1,删除失败返回0

del city

同时删除多个key,返回实际删除成功的数值

del city zipcode email

expire命令

设置某个key的过期时间

格式:expire key 时间(秒)

expire myname 10

设置myname键的过期时间为10秒

ttl 命令

查看某个key的离过期时间还剩余多少秒

ttl myname

查看myname这个缓存key离过期时间还剩余多少秒,返回-1表示未设置过期时间,返回-2表示已经过期了,返回0或正数表示剩余的过期时间

List类型

lpush命令

向List的左侧(头部)添加一个新元素,可以一次性添加多个元素,返回List的总长度

格式: lpush key member [member 2] [member n]

lpush mylist "a"

lpush mylist "b" "c" "d"

rpush命令

向List的右侧(尾部)添加一个新元素,可以一次性添加多个元素,返回List的总长度

格式: rpush key member [member 2] [member n]

rpush mylist "1"

rpush mylist "2" "3" "4"

LRange命令

可以按索引下标范围取出一个List类型某段范围的值

格式:LRange list-key 起始索引 结束索引

如果想获取整个list,起始索引用0,结束索引用-1,-1表示最后一个元素

Range mylist 0 3

LRange mylist 0 -1

起始索引为List的起始索引位置,结束索引为List的结束索引位置,结束索引为-1的时候,取出从0索引到后面所有索引范围的值

LPOP命令

从LIst左侧取出并删除一个元素,返回取出元素的值,如果list不存在,则返回null

LPOP mylist

RPOP命令

从List右侧取出并删除一个元素,返回取出元素的值,如果list不存在,则返回null

RPOP mylist

当LPOP或RPOP弹出最后一个元素时, 这个list键同时会被删除

Ltrim 命令

可以从右边开始对Listf元素进行裁剪,格式为 LTrim listKey start end,返回结果是OK

格式:Lrim list-key start end

Ltrim mylist 0 3

裁前掉右边3个元素

BRPOP和BLPOP

这两个命令与RPOP和LPOP类似,如果元素有值,则立即返回最左边或最右边的值,但是当List里没有元素的时候,它可以等待一定的时间,如果这段时间有新元素添加到了List里,那么就会停止等待并返回该元素,否则就会一直等待直到设定的时间结束,然后返回null

BRPOP listKey 等待时间(秒)

BLPOP listKey 等待时间(秒)

BRPOP mylist 5

BLPOP mylist 5

例子里表示等待5秒。如果等待时间为0,则会永远等待,要慎用。

llen命令

返回List的长度

格式:llen list-key

llen mylist

Set类型(无序集合类型)

sadd命令

添加新元素到set,可以同时添加多个元素,如果添加了重复元素,会删除重复的元素,它的元素顺序是无序的,不会按先来后到的顺序显示。

返回添加成功的元素个数

格式:sadd set-key member [member 2] [member n]

sadd myset 789

给myset添加789这个元素,返回1

sadd myset a b c d e e e

这个例子会给myset添加a b c d e 五个元素,多余的e元素自动删除,返回5

smembers 命令

获取set所有元素,返回的元素列表是无序的。

smembers myset

sismember 命令

判断某个元素是否在set里,存在则返回1,不存在则返回0.

sismember myset c

sinter 命令

返回交集,可以返回两个或两个以上set的交集,返回每个set集合共同存在的元素。

格式:sinter key1 [key2] [key3]

例:

del myset1 myset2 myset3

sadd myset1 1 2 3 4 5

sadd myset2 3 4 5 6 7

sadd myset3 5 6 7 8 9

sinter myset1 myset2

返回: 3 4 5

sinter myset1 myset2 myset3

返回: 5

sinterstore 命令

返回交集,可以返回两个或两个以上set的交集,返回每个set集合共同存在的元素。

然后将交集结果保存到目标set。如果只有一个set需要合并的话,那么就相当于是复制。

格式:sinterstore 目标set-key key1 [key2] [key3]

例:

del myset1 myset2 myset3

sadd myset1 1 2 3 4 5

sadd myset2 3 4 5 6 7

sadd myset3 5 6 7 8 9

sinter myset myset1 myset2 myset3

这个例子,myset的元素为: 5

sunion命令

返回并集,返回多个set之间的并集,并去掉重复的元素

格式:sunion key1 [key2] [key3]

例:

del myset1 myset2 myset3

sadd myset1 1 2 3 4 5

sadd myset2 3 4 5 6 7

sadd myset3 5 6 7 8 9

sunion myset1 myset2

返回 1 2 3 4 5 6 7

sunion myset1 myset2 myset3

返回 1 2 3 4 5 6 7 8 9

sunionstore命令

对多个set集合的元素进行合并,并去掉重复的元素,然后保存到目标set中

格式:sunionstore 目标set-key key1 [key2] [key3]

del myset1 myset2 myset3

sadd myset1 1 2 3 4 5

sadd myset2 3 4 5 6 7

sadd myset3 5 6 7 8 9

sunionstore myset myset1 myset2 myset3

这个例子,myset的元素为 1 2 3 4 5 6 7 8 9,myset以前的值被覆盖

sdiff命令

返回差集,返回第一个集合里面有,而第二个,并且第三个,并且第n个集合里面没有的元素,只要后面任意一个集合有第一个集合的元素,都不返回。

格式:sdiff key1 [key2] [key3]

del myset1 myset2 myset3

sadd myset1 1 2 3 4 5

sadd myset2 4 5 6 7 8

sadd myset3 1 7 8 9 10

sdiff myset1 myset2

返回 1 2 3

sdiff myset1 myset3

返回 2 3 4 5

sdiff myset1 myset2 myset3

返回 2 3

sdiffstore命令

返回差集,返回第一个集合里面有,而第二个,并且第三个,并且第n个集合里面没有的元素,只要后面任意一个集合有第一个集合的元素。

然后将结果保存到目标set集合

格式:sdiffstore 目标set-key key1 [key2] [key3]

del myset1 myset2 myset3

sadd myset1 1 2 3 4 5

sadd myset2 4 5 6 7 8

sadd myset3 1 7 8 9 10

sdiffstore myset myset1 myset2 myset3

这个例子,myset的元素为 2 3

spop命令

随机从set中移除一个或多个元素并返回,格式:spop setKey [返回元数个数],

返回元素个数可写可不写,不写则随机返回1个元素,否则随机返回指定个元素

如果[返回元素个数]超过set元素的总个数,则返回全部元素

spop myset

spop myset 3

spop myset表示随机返回一个

spop myset 3 表示顾及机返回三个

scard 命令

返回set元素的总个数,如果set不存在,返回0

scard myset

如果myset不存在则返回0,存在则返回set元素总个数

srandmember命令,可以随机获取set里面的一个或多个元素,但不会移除他们。当获取的set元素的key不存在时,返回null。当指定的元数个数大于set里元素的总个数时,返回所有。

格式:srandmember setKey [number]

例:srandmember myset

srandmember myset 3

Sorted SET 有序集合类型

Sorted Set有点像Set和Hash的结合体,和Set一样,它里面的元素是唯一的,类型是String,所以它可以理解为就是一个Set。

但是Set里面的元素是无序的,而Sorted Set里面的元素都带有一个浮点值,叫做分数(score),所以这一点和Hash有点像,因为每个元素都映射到了一个值。

Sorted Set是有序的,规则如下:

如果A.score > B.score,那么A > B

如果A.score == B.score,那么A和B的大小就通过比较字符串来决定,而A和B的字符串是不会相等的,因为Sorted Set里面的值都是唯一的。

zadd命令

可以添加元素到Sorted Set,可以同时添加多个元素,分数(score)可以重复,但值不能重复,重复的值不会被添加进去,返回本次成功添加元素的个数。

格式:zadd sortedSetKey score value [score value] [score value]

zadd myzset 10 "Li 1"

zadd myzset 20 "Li 2"

可以同是用zadd添加多个元素

zadd myzset 30 "Li 3" 40 "Li 4" 40 "Li 5"

zrange 命令

按分数由低到高把Sorted Set的所有元素显示出来

格式:zrange key startScore endScore [withscores]

zrange myzset 0 -1

zrange myzset 0 -1 withscores

withscores参数把对应的分数显示出来

zrevrange 命令

按分数由高到低把Sorted Set的所有元素显示出来,与zrange反序显示

格式:zrevrange key startScore endScore [withscores]

zrange myzset 0 -1

zrange myzset 0 -1 withscores

withscores参数把对应的分数显示出来

zrangeByScore 命令

可以按分数范围显示sorted set的部分元素,只显示在范围内的元素

格式:zrangebyscore key 分数下限 分数上限

zrangebyscore myzset 0 59

zremrangebyscore 命令

按分数范围删除元素,返回删除元素的个数

格式:zremrangebyscore key startScore endScore

zremrangebyscore myzset 30 40

zrank 命令

按分数从低到高获得sorted set里面某个元素值的排名,如果该元素不存在,返回空。排名从0开始,0表示排第一,1表示排第二,2表示排第三。

格式:zrank key member

zrank myzset "yee 2"

返回排名

zrevrank 命令

按分数从高到低获得sorted set里面某个元素值的排名,如果该元素不存在,返回空。排名从0开始,0表示排第一,1表示排第二,2表示排第三。

格式:zrevrank key member

zrevrank myzset "yee 2"

返回排名

Hash类型

hash有点像javascript里面的object对象,一个hash里面可以存储多个field-value,每个field相当于一个二级key。

hash里面的值作为string类型存储,但是如果filed里面的值可以解释为数字,也可以对其进行自增或自减操作。

hset命令

设置hash里面的值,返回设置field的个数,但是当某个field已经存在时,这个field的值不会覆盖,会hset失败。

格式:hset hash-key field1 value1 [field2 value2 ...]

hash中的key也可以使用冒号(:),这样可以做出命名空间的效果。

hset user:yee name "black cat"

可以同时设置多个field及值,返回filed的个数。

hset user:yee name "black cat"

hset user:yee age 20 born "2000-6-9" addr "shang hai"

hmset 命令

设置hash里多个field,如果被设置的field已经存在,就更新field的值,不存在则添加一个新的 field。

格式 hmset hash-key field1 value1 [field2 value2 ...]

hmset user:yee name "black cat" age 18

hsetnx 命令

如果hash里存在某个field,则不会添加field并返回0,如果不存在field,则添加新的field并返回1。

格式:hsetnx hash-key field value

hsetnx user:yee tel 15099996666

hget命令

获取hash key里单个field的值,如果key或filed不存在,则返回null

格式 :hget hash-key field

hget user:yee name

hmget 命令

获取hash key里多个field的值。如果field不存在则返回null。

格式:hmget hash-key field1 [field2 ...]

hmget user:yee name age addr

hgetall 命令

获取某个hash-key中的所有field名称及值,field与value都返回

格式:hgetall hash-key

hgetall user:yee

hincrby 命令

如果hash里某个field值的类型可以转换成数值,可以用来做自增或自减操作,返回自增或自减后的值。

格式 hincrby hash-key field incrment

incrment为正数表示自增,为负数表示自减,如果field不存在,新增一个field。

hincrby user:yee count 1

hincrby user:yee count -1

hincrbyfloat 命令

如果hash里某个field值的类型可以转换成数值,可以用来自增或自减少数,返回自增或自减后的值。如果 field不存在,则新增field。

格式: hincrbyfloat hash-key field increment

hincrby user:yee count 3.2

hincrby user:yee count -2.1

hdel 命令

删除某个hash里的字段,可以同时删除多个field,返回删除field的个数,如果field不存在,就忽略删除,并且不计入删除个数。

格式: hdel hash-key field [field ...]

hdel user:yee addr count

hexists 命令

判断hash某个field是否存在,存在返回1,不存在返回0。

格式:hexists hash-key field

hexists user:yee name

hkeys 命令

返回某个hash里的所有field的名称数组。

格式:hkeys hash-key

hkeys user:yee

hvals 命令

返回某个hash里所有field的值数值

格式:hvals hash-key

hvals user:yee

hlen 命令

返回某个hash里所有field的总个数。

格式:hlen hash-key

hlen user:yee

其它

flushall命令

清理所有key,全部删除



『相关搜索』
版本信息:kms v1.3 鄂ICP备2023004815号-1 51LA统计