Redis常用操作命令

String

127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> get age
"18"
自增 incr  自减 decr
127.0.0.1:6379> incr age
(integer) 19
127.0.0.1:6379> incr name
(error) ERR value is not an integer or out of range
自增指定数值(自增的步长) incrby decrby
127.0.0.1:6379>incrby age 2
(integer) 21
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> del xxx
(integer) 0

同时设置 获取多个键值
语法:
MSET key value [key value …]
MGET key [key …]
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> get k1
"v1"
127.0.0.1:6379> mget k1 k3
1) "v1"
2) "v3"

STRLEN命令返回键值的长度,如果键不存在则返回0。
语法:STRLEN key
127.0.0.1:6379> strlen str 
(integer) 0
127.0.0.1:6379> set str hello
OK
127.0.0.1:6379> strlen str 
(integer) 5

适用场景

自增主键:
商品编号、订单号采用string的递增数字特性生成。
定义商品编号key:items:id
192.168.101.3:7003> INCR items:id
(integer) 2
192.168.101.3:7003> INCR items:id
(integer) 3

Hash

 

赋值取值: hset  hget
127.0.0.1:6379> hset hash1 age 20
(integer) 1
127.0.0.1:6379> hget hash1 age
"20"
删除value中的key
127.0.0.1:6379> hdel hash1 age
(integer) 1
删除key
127.0.0.1:6379> del hash1
(integer) 0
增加数字
127.0.0.1:6379> hincrby hash1 age 2
(integer) 22

同时赋予多值,取多值
127.0.0.1:6379> hmset hash1 name zhangsan sex 1
OK
127.0.0.1:6379> hmget hash1 name sex age
1) "zhangsan"
2) "1"
3) "30"
获取所有键值
127.0.0.1:6379> hgetall hash1
1) "age"
2) "30"
3) "name"
4) "zhangsan"
5) "sex"
6) "1"

判断字段是否存在
语法:HEXISTS key field
127.0.0.1:6379> hexists user age		查看user中是否有age字段
(integer) 1
127.0.0.1:6379> hexists user name	查看user中是否有name字段
(integer) 0

只获取keys或者values
语法:HKEYS key  HVALS key
127.0.0.1:6379> hmset user age 20 name lisi 
OK
127.0.0.1:6379> hkeys user
1) "age"
2) "name"
127.0.0.1:6379> hvals user
1) "20"
2) "lisi"

获取长度 HLEN key
127.0.0.1:6379> hlen user
(integer) 2

适用场景

存储商品信息
商品字段
【商品id、商品名称、商品描述、商品库存、商品好评】

定义商品信息的key
商品1001的信息在 Redis中的key为:[items:1001]

存储商品信息
192.168.101.3:7003> HMSET items:1001 id 3 name apple price 999.9
OK

获取商品信息
192.168.101.3:7003> HGET items:1001 id
"3"
192.168.101.3:7003> HGETALL items:1001
1) "id"
2) "3"
3) "name"
4) "apple"
5) "price"
6) "999.9"

List

lpush :  插入到队首
rpush: 插入到队尾
127.0.0.1:6379> lpush list1 4 5 6
(integer) 6
127.0.0.1:6379> rpush list1 a b
(integer) 10
-1 表示获取最后一个
127.0.0.1:6379> lrange list1 0 -1
 1) "6"
 2) "5"
 3) "4"
4) "a"
 5) "b"

127.0.0.1:6379> lrange list1 1 3

弹出列表,则表示从列表中删除
127.0.0.1:6379> lpop list1 
"6"
127.0.0.1:6379> lpop list1 
"5"

获取列表长度
127.0.0.1:6379> llen list1
(integer) 8

 适用场景

商品评论列表
思路:
在Redis中创建商品评论列表
用户发布商品评论,将评论信息转成json存储到list中。
用户在页面查询评论列表,从redis中取出json数据展示到页面。

定义商品评论列表key:
商品编号为1001的商品评论key【items: comment:1001】
192.168.101.3:7001> LPUSH items:comment:1001 '{"id":1,"name":"商品不错,很好!!","date":1430295077289}'

Set

赋值 取值
127.0.0.1:6379> sadd set1 1 2 2 3 3 4 5
(integer) 5
127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"

删除元素
127.0.0.1:6379> srem set1 3
(integer) 1
判断元素是否存在
127.0.0.1:6379> sismember set1 3
(integer) 0
127.0.0.1:6379> sismember set1 4
(integer) 1

0没有 1 有

交并补:

127.0.0.1:6379> sadd set1 1 2 3
(integer) 1
127.0.0.1:6379> sadd set2 2 3 4
(integer) 3

差集
127.0.0.1:6379> sdiff set1 set2
1) "1"
交集
127.0.0.1:6379> sinter set1 set2
1) "2"
2) "3"
并集
127.0.0.1:6379> sunion set1 set2
1) "1"
2) "2"
3) "3"
4) "4"

 

zSet

有序集合和set以及list的区别
Zset是唯一且有序的。
Zset是通过score 来进行排序的。

127.0.0.1:6379> zadd zset1 1 haha 3 hehe 2 heihei 
(integer) 3

实际存储在redis中的 数据顺序为:haha 、 heihei 、 hehe (通过分数升序排序)
127.0.0.1:6379> zrange zset1 0 1
1) "haha"
2) "heihei"

降序排序
127.0.0.1:6379> zrevrange zset1 0 1
1) "hehe"
2) "heihei"

127.0.0.1:6379> zrem zset1 haha
(integer) 1

127.0.0.1:6379> zscore zset1 hehe
"3"

升序,查看 元素及值
zrange zset1 0 1 withscores
 1) "haha"
 2) "1"
 3) "heihei"
 4) "2"

返回值是更改后的分数 
增加某元素的分数,返回值是更改后的分数
语法:ZINCRBY  key increment member
127.0.0.1:6379> ZINCRBY scoreboard 4 lisi 
"101“

获取元素的排名
升序,从小到大
语法:ZRANK key member
127.0.0.1:6379> ZRANK scoreboard lisi 
(integer) 0

降序,从大到小
语法:ZREVRANK key member
127.0.0.1:6379> ZREVRANK scoreboard zhangsan 
(integer) 1

适用场景

需求:根据商品销售量对商品进行排行显示
思路:定义商品销售排行榜(sorted set集合),Key为items:sellsort,分数为商品销售量。

写入商品销售量:
商品编号1001的销量是9,商品编号1002的销量是10
127.0.0.1:6379> ZADD items:sellsort 9 1001 10 1002

商品编号1001的销量加1
127.0.0.1:6379> ZINCRBY items:sellsort 1 1001

商品销量前10名:
127.0.0.1:6379> ZRANGE items:sellsort 0 9 withscores

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值