redis基础及常用命令

1、 启动redis服务和客户端

redis-server :启动 redis 服务
redis-cli :进入 redis 命令客户端
redis-benchmark : 性能测试的工具
redis-check-aof : aof 文件进行检查的工具
redis-check-dump : rdb 文件进行检查的工具
redis-sentinel : 启动哨兵监控服务

2、String常用命令

存值:set <key> <value>
取值:get <key>
取出旧值,放入新值:getset <key> <value>
整数增1:incr <key>
整数减1:decr <key>
整数加法:incrby <key> <integer>
整数减法:decrby <key> <integer>
是否存在:exists <key>
如果不存在就增加,不可覆盖:setnx <key> <value>
拼接字符串(返回长度):append <key> <value>
获取字符串长度:strlen <key>
批量添加:mset <key> <value> [key] [value]...
批量获取:mget <key> [key] [key]...
删除:del <key>

# 应用:商品编号、订单号采用 INCR 命令生成。

3、Hash常用命令

在这里插入图片描述

存值:hset <key> <filed> <value>
取值:hget <key> <filed>
批量存值:hmset <key> <filed> <value> [field] [value]...
批量取值:hmget <key> <filed> [field]...
如果不存在就新增,不覆盖:hsetnx <key> <filed> <value>
获取键所有字段的值:hgetall <key> 
删除:hdel <key> <field> [field]...
整数增加:hincrby <key> <field> <integer>
判断属性是否存在:hexists <key> <field>
获取键的所有字段:hkeys <key>
获取键的所有值:hvals <key>
获取键的数量:hlen <key>

# 应用:【商品id、商品名称、商品描述、商品库存、商品好评】
# 192.168.101.3:7003> HMSET items:1001 id 3 name apple price 999.9

4、list(可重复,有序)常用命令

从左向右添加:LPUSH <key> <value> [value] ...
从右向左添加:RPUSH <key> <value> [value] ...
获取范围内值(包含两端):LRANGE <key> <start_index> <end_index>
查看list全部值:lrange <key> 0 -1
返回并移除左方第一个值:LPOP <key>
弹出左边第一个值,如果没有就阻塞:BLPOP <key> <seconds>
返回并移除右方第一个值:RPOP <key>
弹出右边第一个值,如果没有就阻塞:BRPOP <key> <seconds>
list长度:LLEN <key>
移除list指定数量的对应元素:lrem <key> <count> <value> 
# ps:当count大于0时,从左开始删除count个value
# 当count等于0时,删除全部value
# 当count小于0时,从右开始删除count个value
查询list指定索引数据:lindex <key> <index>
截取指定list范围元素(包含两端):ltrim <key> <start_index> <end_index>
将新元素插入到list指定元素的前后位置:linsert <key> <after|before> <pivotValue> <newValue>
从list1右边弹出一个元素插入到list2左边:rpop <list1> <list2>


# 应用:(1)使用list存储商品评论信息,KEY是该商品的ID,VALUE是商品评论信息列表
# 192.168.101.3:7001> LPUSH items:comment:1001 '{"id":1,"name":"商品不好!!","date":1430295077289}'
# (2)可用作消息队列,lpush入,brpop出

5、set(不重复、无序)常用命令

添加元素:SADD <key> <value>
删除元素:SREM <key> <value>
查看set全部元素:smembers <key>
查看set是否存在该元素:sismember <key> <value>
查询多个set集合的不同元素:sdiff <set1> <set2> [set3]...
查询多个set集合的相同元素:sinter <set1> <set2> [set3]...
查询多个set集合的所有不重复元素:sunion <set1> <set2> [set3]...
查询set集合中的元素数量:scard <key>
随机弹出一个set的元素:spop <key>

6、ZSET(在set的集合上为每个元素关联分数)常用命令

zset添加元素和对应的分数:ZADD <key> <score> <member> [score member ...]
查询zset范围数据按分数从小到大(包含两端,添加withscores可查看分数):zrange <key> <min> <max> [withscores]
查询zset范围数据按分数从大到小(包含两端,添加withscores可查看分数):zrevrange <key> <min> <max>  [withscores]
查询zset元素的分数:score <key> <member>
删除元素:zrem <key> <member> [member ...]
获得指定分数范围的元素:zrangebyscore <key> <min> <max> [withscores]
增加指定元素的分数:zincrby <key> <float> <member>
查询zset元素数量:zcard <key>
获得指定分数范围内的元素个数:zcount <key> <min> <max>
按照分数从小到大排名删除:zremrangebyrank <key> <start_index> <end_index>
按照分数范围删除:ZREMRANGEBYSCORE <key> <min> <max>
获取元素从小到大排序:zrank <key> <member>
获取元素从大到小排序:zrevrank <key> <member>

# 应用:根据商品销售量对商品进行排行显示

7、通用命令

返回满足给定pattern 的所有key :keys <pattern>
删除key:del <key>
查看key是否存在:exists <key>

# key的生存时间命令
设置key的生存时间,单位秒:expire <key> <seconds>
设置key的生存时间,单位毫秒:pexpire <key> <milliseconds>
查看剩余生存时间,单位秒:ttl <key>
清除生存时间:persist <key>


key重命名:rename <key> <newName>
查看数据类型:type <key>

8、发布订阅

在这里插入图片描述

订阅信息管道:subscribe <channel> [channel ...]
订阅符合规则的管道:PSUBSCRIBE pattern [pattern ...]
退订信息管道:unsubscribe <channel> [channel ...]
退订符合规则的管道:PUNSUBSCRIBE pattern [pattern ...]
查询符合规则的活跃管道:PUBSUB CHANNELS [pattern ...]
查询管道的订阅者数量:pubsub numsub [channel ...]

在这里插入图片描述

发布消息到信息管道:publish <channel> <info>

9、redis事务

  • Redis 的事务是通过 MULTI 、 EXEC 、 DISCARD 和 WATCH 、UNWATCH这五个命令来完成的。

  • Redis 的单个命令都是原子性的,所以这里需要确保事务性的对象是命令集合。

  • Redis 将命令集合序列化并确保处于同一事务的命令集合连续且不被打断的执行

  • Redis 不支持回滚操作。

    事务开始命令:MULTI
    执行事务:EXEC
    用于取消事务,放弃执行事务块内的所有命令:DISCARD
    观察key,如果key的数据被改变,则事务取消:WATCH <key>
    取消观察:UNWATCH
    
    # watch和unwatch都需要在multi执行之前执行,因为在multi执行时,watch开始生效
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值