Redis常用命令

1.keys命令:

 (1) ?    匹配一个字符
set k "one character key"
keys ?
keys k

keys ? 和 keys k都返回 k 

 

 (2)*  匹配任意个(包括0个)字符

keys *

返回所有的key

 

 (3)[]   匹配括号间的任一个字符,可以使用 "-" 符号表示一个范围,如 a[b-d] 可以匹配 "ab","ac","ad"

keys  [k]
匹配k
keys [a-z]
匹配a-z之间的任一字符

 

(4)\x   匹配字符x,用于转义符号,如果要匹配 "?" 就需要使用 \?

set ? "?"
keys \?

2.判断key是否存在 exists key

127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists "qiao han"
(integer) 0
127.0.0.1:6379>

如果key存在,返回1,不存在返回0

3.删除key

(1)del key
127.0
.0.1:6379> del name // 删除 key name (integer) 1 127.0.0.1:6379>

(2)del key... // 删除多个key

127.0.0.1:6379> del a b c
(integer) 3
127.0.0.1:6379>

4.获取key的数据类型

返回值可能是 string(字符串类型) 、hash(散列类型) 、list(列表类型) 、set(集合类型) 、zset(有序集合类型)

5.数字类型的key递增、递减

递增key
incr key,返回递增后的值127.0.0.1:6379> set money 1314
OK
127.0.0.1:6379> get money
"1314"
127.0.0.1:6379> incr money
(integer) 1315
127.0.0.1:6379> get money
"1315"
127.0.0.1:6379> 

incrby key increment 增加指定的整数

如果key不存在,会创建该key,并将其默认值设为0, incr key返回1
127.0.0.1:6379> exists m
(integer) 0
127.0.0.1:6379> incr m
(integer) 1
127.0.0.1:6379> 
decr key 递减key
decrby key decrement key按指定数值递减
127.0.0.1:6379> get money
"833"
127.0.0.1:6379> decr money
(integer) 832
127.0.0.1:6379> decrby money 100
(integer) 732
127.0.0.1:6379> 

同样,如果key不存在,会创建key,并将其初始值设为0,decr key返回-1

127.0.0.1:6379> get m
(nil)
127.0.0.1:6379> decr m
(integer) -1
127.0.0.1:6379> get m
"-1"
127.0.0.1:6379> 

增加浮点数 incrbyfloat key increment

127.0.0.1:6379> get m
"2"
127.0.0.1:6379> incrbyfloat m 2.22
"4.22"
127.0.0.1:6379> 

6.redis操作字符串

(1)向尾部追加值 append key value


127.0.0.1:6379> get name
"qiao han"
127.0.0.1:6379> append name " love "
(integer) 14
127.0.0.1:6379> get name
"qiao han love "
127.0.0.1:6379> 
如果key不存在,则将创建键为key,值为value的键值对,相当于 set key value
127.0.0.1:6379> get str
(nil)
127.0.0.1:6379> append str "hwx"
(integer) 3
127.0.0.1:6379> get str
"hwx"
127.0.0.1:6379> 

(2)获取字符串长度 strlen key

127.0.0.1:6379> get str
"hwx"
127.0.0.1:6379> strlen str
(integer) 3
127.0.0.1:6379> get m
"4.22"
127.0.0.1:6379> strlen m
(integer) 4
127.0.0.1:6379> 

(3)同时获取多个key

mget key...

127.0.0.1:6379> mget str name
1) "hwx"
2) "qiao han love "
127.0.0.1:6379> mget m
1) "4.22"

(4)同时设置多个key-value

mset key value [key value...]

127.0.0.1:6379> mset name qiaohan sex 1 age 26
OK
127.0.0.1:6379> keys *
1) "age"
2) "sex"
3) "name"
127.0.0.1:6379> mget name sex age
1) "qiaohan"
2) "1"
3) "26"
127.0.0.1:6379> 

 

 7.redis操作散列类型 (hash)

hset key field value

127.0.0.1:6379> hset map name "qiaohan"
(integer) 1
127.0.0.1:6379> hset map age 26
(integer) 1
127.0.0.1:6379> 

hget key field

127.0.0.1:6379> hget map age
"26"
127.0.0.1:6379> hset map age 30    // 如果field已经存在,会进行覆盖
(integer) 0
127.0.0.1:6379> hget map age
"30"
127.0.0.1:6379> 

hgetall key   取出hashMap中所有的键值对

127.0.0.1:6379> hgetall map
1) "name"
2) "qiaohan"
3) "age"
4) "30"
127.0.0.1:6379> 

同时取出hash中的多个key对应的value值

hmget key field [field...]

127.0.0.1:6379> hmget map name age
1) "qiaohan"
2) "30"
127.0.0.1:6379> hmget map name
1) "qiaohan"
127.0.0.1:6379> 

同时设置多个key-value

hmset key field value [field value...]

127.0.0.1:6379> hmset map friend hwx girl lwx
OK
127.0.0.1:6379> hgetall map
1) "name"
2) "qiaohan"
3) "age"
4) "30"
5) "friend"
6) "hwx"
7) "girl"
8) "lwx"
127.0.0.1:6379> 

删除hash里面的某些 field

hdel key field [field...]

 只获取所有field或所有value

hkeys key

hvals key

127.0.0.1:6379> hdel map friend girl
(integer) 2
127.0.0.1:6379> hkeys map
1) "name"
2) "age"
127.0.0.1:6379> hvals map
1) "qiaohan"
2) "30"
127.0.0.1:6379> 

获取hash的长度

hlen key

127.0.0.1:6379> hlen map
(integer) 2
127.0.0.1:6379> 

 

8.redis操作list

lpush key value [value...]

lpush 命令用来向列表左边增加元素,返回表示增加元素后列表的长度 

rpush key value [value...]

rpush 命令用来向列表右边增加元素,返回表示增加元素后列表的长度 

127.0.0.1:6379> lpush list "qiao han" "miss huang"
(integer) 2
127.0.0.1:6379>
lpop key 从list左边弹出第一个元素,返回弹出的元素

127.0
.0.1:6379> lpop list "miss huang" 127.0.0.1:6379>

llen key 返回list的长度

127.0.0.1:6379> llen list
(integer) 1
127.0.0.1:6379> 
127.0.0.1:6379> rpush list "liuql" "hkz"
(integer) 3
127.0.0.1:6379> rpop list
"hkz"
127.0.0.1:6379> 

lrange key start end

获得列表中的某一片段,返回索引从 start 到 stop 之间的所有元素(包括两端的元素) 索引开始为 0

lrange 与很多语言中用来截取数组片段的方法有一点区别是 lrange 返回的值包含最右边的元素

lrange 命令也支持负索引,表是从右边开始计算序数,如 ' -1 ' 表示最右边第一个元素, ' -2 ' 表示最右边第二个元素,以次类推

因此,lrange key 0 -1 表示获取list中所有元素

127.0.0.1:6379> rpush list "kobe" "james" "bob"
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "qiao han"
2) "liuql"
3) "kobe"
4) "james"
5) "bob"
127.0.0.1:6379> 

127.0.0.1:6379> lrange list 0 2
1) "qiao han"
2) "liuql"
3) "kobe"
127.0.0.1:6379> lrange list 1 3
1) "liuql"
2) "kobe"
3) "james"
127.0.0.1:6379> lrange list 2 -2
1) "kobe"
2) "james"
127.0.0.1:6379> lrange list 0 10
1) "qiao han"
2) "liuql"
3) "kobe"
4) "james"
5) "bob"
127.0.0.1:6379>

 删除列表中的元素

lrem   key  count   value

lrem 命令会删除列表中前 count 个值为 value 的元素,返回值是实际删除的元素个数。根据count 值的不同,lrem 命令执行的方式会有所差异。

            当 count > 0 时,lrem 命令会从列表左边开始删除前 count 个值为 value 的元素
            当 count < 0 时,lrem 命令会从列表右边开始删除前count 个值为 value 的元素
            当 count = 0 时,lrem 命令会删除所有值为value的元素

 

127.0.0.1:6379> lrange list 0 -1
1) "a"
2) "b"
3) "c"
4) "a"
127.0.0.1:6379> lrem list 2 "a"          // 从左边开始,删除两个 "a" 
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "b"
2) "c"
127.0.0.1:6379> 

获取指定元素所有的value值

lindex   key   index

127.0.0.1:6379> lindex list 0
"b"
127.0.0.1:6379> lindex list 1
"c"
127.0.0.1:6379> lindex list 2
(nil)
127.0.0.1:6379> 

 设置指定元素索引的值    lset  key  index  value

127.0.0.1:6379> lindex list 0
"qiao han"
127.0.0.1:6379> lset list 0 "qwx"
OK
127.0.0.1:6379> lindex list 0
"qwx"

只保留列表指定片段  

 ltrim key start end

 ltrim 命令可以删除指定索引范围之外的所有元素,其指定列表范围的方法和 lrange 命令相同

向列表中插入元素 

 linsert key before | after pivot value

 linsert 命令首先会在列表中从左到右查找值为 pivot 的元素,然后根据第二个参数是 before 还是 after 来决定将 value 插入到该元素的前面还是后面
 如果命令执行成功,返回插入操作完成之后列表的长度
 如果没有找到 pivot 返回 -1 如果key 不存在或为空,返回 0

 

redis操作set集合

向set集合中增加元素

sadd  key  member[member...]

获取set中所有元素

smembers  key

删除set中某个元素

srem  key  member[member...]

判断元素是否在集合中
 sismember key member      当值存在时 sismember 命令返回 1 ,当值不存在或者键不存在时返回 0
 
集合间的运算
sdiff key [ key ...... ]
sdiff 命令用来对多个集合执行差集运算。集合 A 与集合 B 的差集表示为 A- B ,代表所有属于 A 且不属于 B 的元素构成的集合,即 
 A - B = { x| x∈A  且 x ∈/B }
127.0.0.1:6379> sadd set_a 1 2 3 4 5 6
(integer) 6
127.0.0.1:6379> sadd set_b 4 6 8
(integer) 3
127.0.0.1:6379> sdiff set_a set_b
1) "1"
2) "2"
3) "3"
4) "5"
127.0.0.1:6379> 
 sinter key [ key ..... ]
该命令用来对多个集合执行交集运算。集合 A 与集合 B 的交集表示为 A∩B,代表所有属于 A 且属于 B 的元素构成的集合
即 A∩B = { x| x∈A  且 x ∈B }
127.0.0.1:6379> sinter set_a set_b
1) "4"
2) "6"
127.0.0.1:6379> 
sunion key [ key ...... ]
 该命令用来对多个集合执行并集运算。集合 A 与集合 B的并集表示为 A∪B ,代表所有属于A或所有属于B的元素构成的集合
 即  A∪B = { x| x∈A  或 x ∈B }
127.0.0.1:6379> sunion set_a set_b
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "8"
127.0.0.1:6379> 
   获得集合中元素的个数
   scard key
 
从集合中弹出一个元素
spop key
由于集合类型的元素是无序的,所以 spop 命令会从集合中随机选择一个元素弹出,返回值为被移除的随机元素
如果 key 不存在或者 key 为空集时,返回 nil
 
 
有序集合类型(sorted set)
增加元素
zadd key score member [ score member ...... ]
zadd 命令用来向有序集合中加入一个元素和该元素的分数,如果该元素已经存在,则会用新的分数替换原有的分数
zadd命令的返回值是新加入到集合中的元素个数(不包含之前已经存在的元素)
 
获得元素的分数
zscore key member

 

 

 

参考资料:https://www.cnblogs.com/kevinws/p/6281395.html

posted @ 2020-05-24 21:05  乔有点小二  阅读(206)  评论(0)    收藏  举报