当前位置: 首页 > news >正文

redis原理(三)redis命令

一、字符串命令:

1、字符串基本操作:

2、自增自减 :如果一个值可以被解释为十进制整数或者浮点数,redis允许用户对这个字符串进行INCR*、DECR*操作。

(1)INCR key:将键存储的值的值加1。

(2)DECR key:将键存储的值减1。

(3)INCRBY key increment:将键存储的值加上整数 increment。

(4)DECRBY key decrement:将键存储的值减去整数 decrement。

(5)INCRBYFLOAT key decrement:将键存储的值加上浮点数decrement。这个命令在redis2.6及以上可以使用。

127.0.0.1:6379> set age 1
OK
127.0.0.1:6379> INCR age
(integer) 2
127.0.0.1:6379> get age
"2"
127.0.0.1:6379> DECR age
(integer) 1
127.0.0.1:6379> get age
"1"
127.0.0.1:6379> INCRBY age 3
(integer) 4
127.0.0.1:6379> get age
"4"
127.0.0.1:6379> DECRBY age 1
(integer) 3
127.0.0.1:6379>

3、处理子串和二进制位:

(1)APPEND

(2)GETRANGE:

(3)SETRANGE:

(4)GETBIT:

(5)SETBIT:

(6)BITCOUNT:

(7)BITOP:

二、列表命令:

1、基础命令:

(1)lpush 命令:在 列表 的左侧添加元素,成功返回当前列表的长度。 

127.0.0.1:6379> lpush key java
(integer) 1

   lpush 一次可以给 key 添加多个 value

127.0.0.1:6379> lpush key python php c
(integer) 4

  (2)rpush 命令:在 列表 的右侧添加元素,用法和 lpush 相同。

127.0.0.1:6379> rpush key rust
(integer) 6
127.0.0.1:6379> rpush key asm scala
(integer) 8

(3)lpop 命令:从列表的左侧弹出一个值

(4)rpop 命令:从列表的右侧弹出一个值

(5)llen 命令:  返回列表的当前长度

127.0.0.1:6379> llen key
(integer) 8

(6)lindex 命令: 返回列表指定索引位置的值:

127.0.0.1:6379> lindex key  1
"python"

(7)lrange 命令: 查看列表指定范围的值

127.0.0.1:6379> lrange key 0 3
1) "c++"
2) "c"
3) "php"
4) "python"

(8)ltrim 命令:用于截取列表内元素

127.0.0.1:6379> ltrim key 0 5
OK
127.0.0.1:6379> lrange key 0 -1
1) "c++"
2) "c"
3) "php"
4) "python"
5) "java"
6) "rust"

2、阻塞式命令:这组命令常用于消息传递、任务队列。

(1)blpop 命令:从第一个非空列表中弹出位于最左端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现。

blpop key [key ...] timeout

demo:同时开两个 Redis 的客户端,然后在客户端一输入如下命令:

#在 key1 和 key2 列表中弹出一个值,如果两个列表都为空则阻塞 5 秒,因为现在 key1 和 key2 都为空,因此 blpop 阻塞了 5 秒。
127.0.0.1:6379> blpop key1 key2 5
(nil)
(5.06s)

再次在客户端一输入如下命令:

127.0.0.1:6379> blpop key1 key2 20

  由于 key1 和 key2 同样什么都没有,因此 blpop 命令进入 20 秒的阻塞状态,此时,我们在客户端二输入如下命令:

127.0.0.1:6379> lpush key1 java
(integer) 1

观察客户端一,客户端一输出如下:

1) "key1"
2) "java"
(9.51s)

也就是客户端一的 blpop 阻塞了 9.51 秒 以后 key1 列表弹出一个值 java。

(2)brpop 命令: 从第一个非空列表中弹出位于最右端的元素,或者在timeout秒之内阻塞并等待可弹出的元素出现。

(3)rpoplpush 命令:

(4)brpoplpush 命令 :

三、集合命令:

1、基本命令:

(1)SADD:

(2)SREM:

(3)SISMEMBER:

(4)SCARD:

(5)SMEMBERS:

(6)SRANDMEMBER:

(7)SPOP:

(8)SMOVE:

2、用于组合和处理多个集合的redis命令:

(1)SDIFF:

(2)SDIFFSTORE:

(3)SINTER:

(4)SINTERSTORE:

(5)SUNION:

(6)SUNIONSTORE:

四、散列:

http://www.lryc.cn/news/281528.html

相关文章:

  • 教程:在Django中实现微信授权登录
  • YOLOv5改进 | 主干篇 | 12月份最新成果TransNeXt特征提取网络(全网首发)
  • 【java八股文】之计算机网络系列篇
  • SpringAMQP的使用
  • MATLAB - 使用运动学 DH 参数构建机械臂
  • 2024年腾讯云新用户优惠云服务器价格多少?
  • 如何在原型中实现继承和多态
  • MySQL/Oracle 的 字符串拼接
  • 【Java SE语法篇】10.String类
  • 【Python】数据可视化--基于TMDB_5000_Movie数据集
  • 学习Vue的插槽总结
  • 第九篇 API设计原则与最佳实践
  • 新版AndroidStudio配置maven阿里云镜像
  • 【OSG案例详细分析与讲解】之十一:【多效果的3D动画】
  • 一道使用LinkedList和Stack解决的算法题
  • 通用外设-W25Q64
  • Spring MVC MVC介绍和入门案例
  • android使用ndk开发
  • 行为型设计模式——模板方法模式
  • 曲面上偏移命令的查找
  • 世邦spon IP网络对讲广播系统任意文件上传漏洞
  • mp4文件全部转换为mp3
  • 深信服技术认证“SCSA-S”划重点:逻辑漏洞
  • Linux grep命令教程:强大的文本搜索工具(附案例详解和注意事项)
  • 网络安全的威胁PPT
  • CUDA驱动深度学习发展 - 技术全解与实战
  • 如何做用户分层和标签体系
  • Vue+Element Ui实现el-table自定义表头下拉选择表头筛选
  • 使用Java连接MongoDB (6.0.12) 报错
  • 数学建模day16-预测模型