Redis常用命令
1.keys命令:
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 命令执行的方式会有所差异。
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
redis操作set集合
向set集合中增加元素
sadd key member[member...]
获取set中所有元素
smembers key
删除set中某个元素
srem key member[member...]
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>
127.0.0.1:6379> sinter set_a set_b
1) "4"
2) "6"
127.0.0.1:6379>
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>

浙公网安备 33010602011771号