redis基本数据类型及常见命令

news/2024/12/2 16:37:49/

数据库操作

Key的操作

String

  • 说明
    • String是二进制安全的,任何对象只要能转化为字符串,就可以存储(图片,视频)
    • 一个字符串最多存储512M
  • 常见命令
    • set <key> <value>: 添加数据
    • getset <key> <value>: 更新数据
    • get <key>: 取值
    • append <key> <value>: 指定value后追加值 (返回追加后的长度)
    • strlen <key>: 返回value长度
    • setnx <key> <value>: 当set不存在 添加value 若存在则不会覆盖
    • incr <key>: value++ 只能对数值操作 如果为空 加为1
    • decr<key>: value– 只能对数值操作 若为空 则为-1
    • incrby/decrby <key> <n>: + 或者 - n
    • mset<k1><v1><k2><v2>: 同时设置多个键值对
    • mget<k1><k2>: 同时获取多个value
    • msetnx <key> <value>: 同时设置多个 当set不存在 添加value 若存在则不会覆盖 (原子性 一个失败全失败)
    • gettrange <key> <起始位置><结束位置>: 截取value返回
    • settrange <key> <起始位置> <newValue>: 从起始位置覆盖value为新值
    • setex <key> <过期时间> <value> : 新增值的同时设置过期时间。

List 单键多值 (底层为双向链表)

  • 常用命令

    • lpush/rpush <key><v1><v2><v3> 从左边或者右边插入一个或多个值
      • 左边放是头插 (类似栈)
      • 右边放是尾插 (类似队列)
    • lrange <key> <start> <stop> 取start开始,stop结束的元素
      • lrange <key> 0 -1 表示取所有值
    • lpop/rpop: 从左边或者右边弹值 (值空key亡)
    • rpoplpush <key1> <key2>: k1右边弹值放入k2左边
    • lindex <key>: 获取指定下标的元素 从左到右
    • llen <key>: 获取list长度
    • linsert <key> before <v1> <v2>:将v2插入到左边第一次出现v1的位置之前。
    • lrem <key> <n> <value>: 从指定value处向左删除n个元素
    • lset <key> <index> <newValue>: 更新

Set

  • 对外的功能和list类似,但是可以自动去重 并且添加了判断是否存在指定value的功能
  • 底层为value为null的hash表,添加,修改,删除复杂度都是O(1)
  • 常见命令
    • sadd <key> <v1><v2> : 新增
    • smembers <key>: 取所有值
    • sismember <key> <value>: 判断是否存在该value 有返回1 无返回0
    • scard <key>: 长度
    • srem <key> <value>: 删除
    • spop <key>: 随机弹出一个值
    • srandmember <key> <n>: 随机取出n个值
    • smove <key1> <key2> <value>: 将value从key1放入key2中
    • sinter <k1> <k2> : 交集
    • sunion <k2> <k1>: 并集
    • sdiff <k1> <k2>: k1中有 k2中没有的

Hash

  • 键值对集合

  • String类型的``属性值`的映射表 适合存储对象。 <String,Map>

  • 例子

    image-20210717215636131

    image-20210717215523054

常见命令

  • hset <key><field1> <value1> <field2> <value2> 给key中的field赋值value
  • hget <key> <field>: 获取key对象中的field值
  • hexists<key><field>: 查看key对象的field属性是否存在
  • hkeys <key>: 列出所有field
  • hvals <key>:列出所有value
  • hincrby <key> <field> <n>: key对象的field属性加n
  • hsetnx <key> <field> <value> : 当且仅当field不存在时 设置属性。

Zset

在set的基础上增加了排序的功能,每个成员都关联了一个评分(score) ,根据评分进行排序.

  • 常见命令
    • zadd <key><score1><value1><score2><value2>…

      • 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
    • zrange <key><start><stop> [withscores]

      • 返回有序集 key 中,下标在 之间的元素
      • zrange <key> 0 -1: 返回所有元素
      • withscores,可以让分数一起和值返回到结果集。
    • zrangebyscore <key> <min> <max> [withscores] [limit offset count]

      • 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
    • zrevrangebyscore key maxmin [withscores] [limit offset count]

      • 同上,改为从大到小排列。
    • zincrby <key> <n> <value>

      • 为value元素的score加上增n
    • zrem <key><value>

      • 删除该集合下,指定值的元素
    • zcount <key> <min> <max>

      • 统计该集合,分数区间内的元素个数
    • zrank <key><value>

      • 返回该值在集合中的排名,从0开始。

http://www.ppmy.cn/news/59191.html

相关文章

Docker安全最佳实践

目录 1、探测容器开放端口和服务漏洞 2、宿主机、网络、镜像、DockerApi安全 3、更新Docker、日志、事件 4、Docker安全测试 5、Docker安全最佳实践 1、探测容器开放端口和服务漏洞 使用Nmap扫描Docker容器中的开放端口 使用docker ps命令获取正在运行的容器ID或名称。在…

SpringData-Redis配置及常用操作

文章目录 1.引入依赖2.yml配置文件3.设置Redis序列化4.使用教程5.操作String数据类型6.操作Hash数据类型7.操作Set数据类型8.操作List数据类型9.操作Sorted Set 数据类型 1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId…

GPT系列论文

目录 GPT 无监督预训练 有监督微调 如何将模型应用于下游任务&#xff1f; 试验结果 GPT-2 摘要 Introduction Approach 数据集&模型 试验结果 GPT-3 核心点 名词解释 few-shot做法图示 数据集 GPT 由无监督预训练有监督微调组成 无监督预训练 有监督微调…

Python3中for循环多个变量详解

for 循环用于迭代任何序列&#xff0c;从列表到元组再到字典。它甚至可以遍历一个字符串。 在同一行代码中同时对变量进行多次赋值&#xff0c;称为可迭代解包。 Python的 for 循环中&#xff0c;使用多个变量可以应用于列表或字典&#xff0c;但它不适用于一般错误。 字典中…

嵌入式C语言基础(STM32)

前言&#xff1a;一条混迹嵌入式3年的老咸鱼&#xff0c;想到自己第一次接触到stm32的库函数时&#xff0c;c语言稀碎&#xff0c;痛不欲生的场景&#xff0c;该文章为萌新指条明路。 一、位操作 位操作在嵌入式中常用于直接对芯片的寄存器进行操作&#xff0c;当时作为初学者…

【三十天精通Vue 3】 第二十三天 Vue 3的错误处理详解

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录 引言一、Vue 3 错误处理概览1. 错误处理的重要性2. Vue 3 中的错误…

【Redis】聊一下Redis基础架构

我们知道学习一个技术&#xff0c;最好的方式就是从全局观出发&#xff0c;然后针对不同的点进行拆分&#xff0c;一个个破解。既可以将学到的和已有的知识联系起来&#xff0c;又可以有一定的深度和目的性。 Redis基础架构 对于一个中间件来说&#xff0c;一个是使用层面&…

unity中的Quaternion.AngleAxis

介绍 unity中的Quaternion.AngleAxis 方法 Quaternion.AngleAxis() 函数是 Unity 引擎中的一个数学函数&#xff0c;用于创建一个绕着某个轴旋转一定角度的旋转四元数。在游戏开发中&#xff0c;经常会用到该函数来旋转物体或计算旋转后的方向向量。 该函数的函数原型为&…