redis使用(二)

  • 常用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 命令参考


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值