- 常用key命令
- String常用命令
- Hashs
- Lists
- Sets
- sorted set
redis中保存的数据都是键值对,键的类型都是字符串类型,值的类型有五种:
String, 字符串Hashs, 哈希表(又称散列), 哈希Lists表中的元素是字符串
Lists, 列表 ,列表中的元素也是字符串
Sets, 集合,元素也是字符串
Sorted Sets, 有序集合,元素是字符串和一个对应的score
一.key的常用命令
#KEY pattern查看匹配模式的键, pattern支持glob通配符
> KEYS *
1) "car"
2) "name"
#EXISTS key 查看一个键是否存在
127.0.0.1:6379> EXISTS name
(integer) 1
127.0.0.1:6379> EXISTS nouse
(integer) 0
#DEL key [key ...] 删除键, 返回删除键的个数
127.0.0.1:6379> DEL name
(integer) 1
127.0.0.1:6379> DEL name
(integer) 0
#TYPE key 获得键值的类型
127.0.0.1:6379> SET name wukong
OK
127.0.0.1:6379> TYPE name
string
127.0.0.1:6379> LPUSH ring BBA
(integer) 1
127.0.0.1:6379> TYPE ring
list
二、Strings常用命令
#SET key value 设置一个string类型的键值对
127.0.0.1:6379> set car baoma
OK
#GET key 获取一个string 键对应的值
127.0.0.1:6379> get car
"baoma"
#INCR key 使值加一,条件是string的值可以转换数字
127.0.0.1:6379> set count 1
OK
127.0.0.1:6379> incr count
(integer) 2
127.0.0.1:6379> get count
"2"
#APPEND key value
127.0.0.1:6379> set say hello
OK
127.0.0.1:6379> append say " world !"
(integer) 13
127.0.0.1:6379> get say
"hello world !"
#STRLEN key 查询字符串的长度
127.0.0.1:6379> strlen say
(integer) 13
#MGET key [key ...] 获取多个键的值
#MSET key value [key value ...] 设置多个键的值
#GETBIT key offset 获得指定键值的二进制位的值
#SETBIT key offset 设置指定键值的二进制位的值
Bit位相关的操作,可以用来表示大量的bool值,来节省空间
其它数值相关命令:
#INCRBY key increment
#DECR key
#DECRBY key decrement
#INCRYBYFLOAT key incrment
三、
Hashs
Hash类型的值保存了字段和字段值的映射
#hset key field value
127.0.0.1:6379> hset car:1 name BMW
(integer) 1
127.0.0.1:6379> hset car:1 price 50
(integer) 1
#hget key field
127.0.0.1:6379> hget car:1 price
"50"
#hgetall 获取所有字段的值
127.0.0.1:6379> hgetall car:1
1) "name"
2) "BMW"
3) "price"
4) "50"
#hmset field value [field value ...] 设置多个字段
#hmget field value [field ...] 获取多个字段
#hexists key field 判断字段是否存在
127.0.0.1:6379> hexists car:1 name
(integer) 1
#hsetnx key field value 如果字段不存在就赋值
127.0.0.1:6379> hsetnx car:1 color black
(integer) 1
127.0.0.1:6379> hget car:1 color
"black"
#hincrby key field increment 增加字段的值
127.0.0.1:6379> hincrby car:1 price 6
(integer) 56
127.0.0.1:6379> hget car:1 price
"56"
#hdel key field [field ...] 删除字段
"56"
127.0.0.1:6379> hdel car:1 price
(integer) 1
#hlen key 获取字段数
127.0.0.1:6379> hlen car:1
(integer) 2
四、
Lists
Lists存储的是字符串列表,内部用双向列表实现
#lpush key value [value ...] 向列表左边添加元素
127.0.0.1:6379> lpush lang c
(integer) 1
#rpush key value [value ...] 向列表右边添加元素
127.0.0.1:6379> rpush lang c++
(integer) 2
#lpop key 从列表左边弹出元素
127.0.0.1:6379> lpop lang
"c"
#rpop key 从列表右边弹出元素
127.0.0.1:6379> rpop lang
"c++"
#lrange key start stop 获取某个片段
127.0.0.1:6379> lrange lang 1 2
1) "c++"
2) "java"
#lrem count value 删除count个值为value的元素
count>0: 从删除左边count个值为value的元素
count<0: 从右边删除
count=0: 删除所有的
#lindex key index 返回索引为index的元素,即第index个元素
127.0.0.1:6379> lindex lang 2
"java"
#ltrim key start end 保留指定范围的元素
127.0.0.1:6379> lrange lang 0 1000
1) "c"
2) "c++"
3) "java"
4) "python"
127.0.0.1:6379> ltrim lang 1 2
OK
127.0.0.1:6379> lrange lang 0 -1
1) "c++"
2) "java"
#linsert key before|after value_pos value
127.0.0.1:6379> linsert lang before java c#
(integer) 3
127.0.0.1:6379> lrange lang 0 -1
1) "c++"
2) "c#"
3) "java"
#rpoplpush source destination 把元素从source转移到destination
127.0.0.1:6379> rpoplpush lang prog
"java"
127.0.0.1:6379> lrange prog 0 -1
1) "java"
五、Sets
Sets类型的键值是一个字符串集合
#sadd key member [member ...] 增加元素
127.0.0.1:6379> sadd app qq wechat
(integer) 2
#srem key member [member ...] 删除元素
127.0.0.1:6379> srem app qq
(integer) 1
#smembers key 查询所有元素
127.0.0.1:6379> smembers app
1) "wechat"
#sismember key member 查看元素是否存在
127.0.0.1:6379> sismember app qq
(integer) 0
127.0.0.1:6379> sismember app wechat
(integer) 1
#sdiff key [key ...] 求差集
#sinter key [key ...] 求交集
#sunion key [key ...] 求并集
127.0.0.1:6379> sadd A 2 4 6
(integer) 3
127.0.0.1:6379> sadd B 1 4 9
(integer) 3
127.0.0.1:6379> sdiff A B
1) "2"
2) "6"
127.0.0.1:6379> sinter A B
1) "4"
127.0.0.1:6379> sunion A B
1) "1"
2) "2"
3) "4"
4) "6"
5) "9"
#sdiffstore destination key [key ...] 求差集并存储到destintion
#sinterstore destination key [key ...] 求交集并存储到destintion
#sunionstore destiontion key [key ...] 求并集并存储到destintion
六、
sorted set
有序集合,集合中的每个元素有一个score,并根据score的大小排列
#zadd key score member [score member ...] 增加元素
127.0.0.1:6379> zadd student 88 tom 90 jack 95 kerl
(integer) 3
#zscore key member 获取元素的分数
127.0.0.1:6379> zscore student tom
"88"
#zrange key start stop 获取start到stop之间的元素
127.0.0.1:6379> zrange student 1 2
1) "jack"
2) "kerl"
#zrange key start stop withscores 获取start到stop之间的元素,带分数
127.0.0.1:6379> zrange student 1 2 withscores
1) "jack"
2) "90"
3) "kerl"
4) "95"
#zrangebyscore key min max [withscore]
127.0.0.1:6379> zrangebyscore student 80 90
1) "tom"
2) "jack"
#zincrby key increment member 增加一个成员的分数
127.0.0.1:6379> zincrby student 10 tom
"98"
#zcount key min max 获取指定分数区间的元素个数
127.0.0.1:6379> zcount student 80 90
(integer) 2
#zrem key member [member ...] 删除元素
127.0.0.1:6379> zrem student tom
(integer) 1
#zremrangebyrank key start stop 按照排名删除元素
#zremrangebyscore key min max 按照分数删除元素
#zrank key member获得元素的排名
127.0.0.1:6379> zrank M c
(integer) 2
#zinterstore destination numkeys key [key ...] [weight w1 w2 ...] [aggregate sum|min|max]
求numkeys个集合的交集,并存储到集合destination中
127.0.0.1:6379> zadd M 50 a 60 b 70 c
(integer) 3
127.0.0.1:6379> zadd N 80 b 90 c
(integer) 2
127.0.0.1:6379> zinterstore P 2 M N
(integer) 2
#zunionstore destnation numkeys key [key ...] [weight w1 w2 ...] [aggregate sum|min|max] 求交集
以上命令或者更多命令,都可以在redis官网和redis中文官网查到。
参考:
1.redis官网
2.redis中文官网
3.redis 命令参考