Redis基本语法集合(示例+语法格式)

news2024/12/18 6:27:03

目录

    • Key键的基本语法
    • String的基本语法
    • List的基本语法
    • Set的基本语法
    • Hash的基本语法
    • Zset的基本语法
    • Bitmaps的基本语法
    • Geospatia的基本语法
    • Hyperloglog的基本语法


Key键的基本语法

命令描述语法格式示例注意事项
keys查看当前库中所有的key,支持通配符keys patternkeys *生产环境已禁止,因为可能长时间阻塞Redis;推荐使用scan
exists判断某个key是否存在exists key [key ...]exists k1返回存在的key数量,不具体指出哪一个存在
type查看当前key所储存的值的类型type keytype k1返回key的类型,如string、list等
del删除已存在的keydel key [key ...]del k1返回删除成功的key数量
expire给key设置过期时间(秒)expire key timeexpire k1 10设置成功返回1,key不存在返回0
ttl以秒为单位返回key的剩余过期时间ttl keyttl k1key不存在返回-2,没有设置过期时间返回-1
persist移除给定key的过期时间,使其永不过期persist keypersist k1移除成功返回1,key不存在或没有设置过期时间返回0

String的基本语法

String最多可存放512的数据

命令描述语法格式示例注意事项
set设置给定key的值,如果key已存在则重写旧值set key valueset k1 v1无视类型,直接覆盖旧值
get获取指定key的值,如果key不存在则返回nilget keyget k1如果key不存在,返回nil
append将给定的value追加到key原值末尾append key valueAPPEND k1 k1如果key不存在,则设置key为value
strlen获取指定key所储存的字符串值的长度strlen keystrlen k1如果key储存的不是字符串,返回错误
setex设置key的值及过期时间(秒)setex key time valuesetex k1 10 v1如果key已存在,替换旧值并设置新的过期时间
setnx只有在key不存在时设置key的值setnx key valuesetnx k4 v4如果key已存在,不做任何操作
getrange获取指定区间范围内的值getrange key start endgetrange k5 2 4返回start到end范围内的子字符串
setrange覆盖key指定偏移量上的字符setrange key offset valuesetrange k6 1 xxx从offset开始覆盖字符
incr将key中储存的数字值增一incr keyincr k1如果key不存在,初始化为0再递增;非数字值会报错
decr将key中储存的数字值减一decr keydecr k1如果key不存在,初始化为0再递减;非数字值会报错
incrby/decrby将key存储的数字值按step增减incrby/decrby key stepincrby k1 10如果key不存在,初始化为0再执行;非数字值会报错
mset同时设置一个或多个key-valuemset key1 value1 key2 value2mset k1 v1 k2 v2 k3 v3批量设置多个键值对
mget返回所有给定key的值mget key1 key2mget k1 k2 k3如果某个key不存在,返回nil
getset将给定key值设为value,并返回key的旧值getset key valuegetset k1 wcc先获取旧值,然后设置新值

List的基本语法

命令描述语法格式示例注意事项
lpush从列表左边(头部)插入一个或多个值lpush key value [value ...]lpush k1 v1 v2 v3插入成功返回列表长度
rpush从列表右边(尾部)插入一个或多个值rpush key value [value ...]rpush k1 v4 v5 v6插入成功返回列表长度
lrange返回列表中指定范围的元素lrange key start endlrange k1 0 2lrange k1 0 -1startend基于0索引,-1表示最后一个元素
lpop移除并返回列表的第一个元素lpop keylpop k1移除成功返回被移除的元素,列表不存在或为空返回nil
rpop移除并返回列表的最后一个元素rpop keyrpop k1移除成功返回被移除的元素,列表不存在或为空返回nil
lindex获取列表中指定索引位置的元素lindex key indexlindex k1 0index基于0索引,超出范围返回nil
llen获取列表的长度llen keyllen k1返回列表的长度,列表不存在返回0
lrem从列表中移除指定数量的指定元素lrem key count valuelrem k1 2 v1count为正数从头部开始移除,为负数从尾部开始移除;移除成功返回被移除的元素数量
linsert在列表中指定元素的前或后插入一个新元素linsert key before/after pivot valuelinsert k1 before v1 v5插入成功返回列表长度,pivot不存在返回-1
lset将列表中指定索引位置的元素设置为新值lset key index valuelset k1 2 new_valueindex基于0索引,超出范围或列表不存在返回错误

Set的基本语法

String类型的无序集合
底层是value为null的hash表

命令描述语法格式示例注意事项
sadd向集合中添加一个或多个元素,已存在的元素将被忽略sadd key value [value ...]sadd k1 v1 v2 v2 v3 v4 v5 v6添加成功返回新添加的元素数量(不包括已存在的)
smembers返回集合中的所有元素smembers keysmembers k1返回集合中的所有元素,集合不存在返回空列表
sismember判断集合中是否包含指定元素,包含返回1,否则返回0sismember key valuesismember k1 v1判断成功返回1或0,集合不存在返回0
scard返回集合的元素个数scard keyscard k1返回集合的元素个数,集合不存在返回0
srem删除集合中的一个或多个元素,不存在的元素将被忽略srem key value [value ...]srem k1 v1 v2删除成功返回被删除的元素数量(不包括不存在的)
spop随机删除集合中的一个元素并返回该元素spop keyspop k1删除成功返回被删除的元素,集合为空或不存在返回nil
srandmember随机返回集合中的指定数量的元素,但不删除这些元素srandmember key countsrandmember k1 2返回指定数量的随机元素,集合元素不足时返回所有元素
smove将元素从源集合移动到目标集合中smove source destination valuesmove k1 k2 v5移动成功返回1,元素不存在或源集合不存在返回0
sinter返回两个或多个集合的交集元素sinter key1 [key2 ...]sinter k1 k2返回交集元素,至少一个集合不存在时返回空列表
sunion返回两个或多个集合的并集元素sunion key1 [key2 ...]sunion k1 k2返回并集元素,至少一个集合不存在时返回所有存在的集合元素
sdiff返回第一个集合与后面一个或多个集合的差集元素sdiff key1 [key2 ...]sdiff k1 k2返回差集元素,至少一个集合不存在时返回第一个集合的所有元素

Hash的基本语法

键值对的集合
key——Hash表(field1–value1,field2–value2,field3–value3…)

命令描述语法格式示例注意事项
hset给哈希表中的字段赋值hset key field valuehset user name baizhan如果哈希表或字段不存在,则创建;如果字段已存在,则覆盖旧值
hget从哈希表中取出字段的值hget key fieldhget user name如果哈希表或字段不存在,则返回nil
hmset批量设置哈希的字段及值(已废弃,建议使用hset的多个字段形式)hmset key field1 value1 field2 value2 ...hmset user1 name baizhan age 15批量设置字段和值,如果哈希表不存在则创建
hexists判断哈希表中是否存在指定字段hexists key fieldhexists user1 name存在返回1,不存在返回0
hkeys获取哈希表中所有的字段hkeys keyhkeys user1返回哈希表中所有的字段列表
hvals获取哈希表中所有的值hvals keyhvals user1返回哈希表中所有的值列表
hincrby为哈希表中的字段值加上增量hincrby key field incrementhincrby user1 age 10字段值必须为整数,增量可以为正或负
hdel删除哈希表中的一个或多个指定字段hdel key field1 field2 ...hdel user1 age删除成功返回被删除的字段数量,不存在的字段被忽略
hsetnx给哈希表中不存在的字段赋值hsetnx key field valuehsetnx user1 age 10如果字段已存在,则操作无效并返回0;如果字段不存在,则设置值并返回1

Zset的基本语法

String集合,不允许重复,但可以排序,每条数据都关联一个分数,依据分数高低排序,其中分数可重复

命令描述语法格式示例注意事项
zadd向有序集合中添加一个或多个元素及其分数zadd key score1 value1 score2 value2 ...zadd k1 100 java 200 c++ 300 python 400 php如果元素已存在,则更新其分数;分数可以是整数或浮点数
zrange返回有序集合中指定索引范围内的元素zrange key start end [withscores]zrange k1 0 -1zrange k1 0 -1 withscores按分数递增排序;withscores参数可选,用于返回元素分数
zrangebyscore返回有序集合中指定分数范围内的元素zrangebyscore key minscore maxscore [withscores]zrangebyscore k1 200 400按分数递增排序;withscores参数可选,用于返回元素分数
zincrby为有序集合中元素的分数加上指定增量zincrby key increment valuezincrby k1 50 javajava元素的分数加上50
zrem从有序集合中删除指定元素zrem key valuezrem k1 php删除php元素
zcount统计有序集合中指定分数范围内的元素个数zcount key minscore maxscorezcount k1 100 300统计100分到300分之间的元素个数
zrank返回有序集合中指定元素的排名zrank key valuezrank k1 c++返回c++元素在有序集合中的排名,从0开始

Bitmaps的基本语法

对字符串进行位的操作,合理使用可以提高效率
适合用于需要高效存储和查询大量布尔值(如打卡记录、活跃状态等)的场景。

命令描述语法格式示例注意事项
setbit设置Bitmaps中某个偏移量的值setbit key offset valuesetbit zhangsan:3 1 1value只能是0或1;偏移量从0开始
getbit获取Bitmaps中某个偏移量的值getbit key offsetgetbit sign 3如果偏移量未设置值,则返回0
bitcount统计字符串被设置为1的bit数量bitcount key [start end]bitcount signbitcount num 1 3可以指定字节组范围进行统计;不指定范围则统计整个字符串
bitop将多个bitmaps通过求交集/并集方式合并成一个新的bitmapsbitop and/or destkey sourcekey1 sourcekey2 ...bitop and k3 k1 k2bitop or k3 k1 k2and表示交集,or表示并集;destkey是目标key,sourcekey是源key

Geospatia的基本语法

操作地理空间数据,允许存储、查询和计算地理位置的相关信息。

命令描述语法格式示例注意事项
geoadd将一个或多个经度、纬度、位置名称添加到指定的key中geoadd key longitude latitude member [longitude latitude member ...]geoadd china 116.405285 39.904989 beijing经度在前,纬度在后;可以同时添加多个位置
geopos从给定的key里返回所有指定名称的位置(经度和纬度)geopos key member [member ...]geopos china shanghai beijing返回指定名称的经纬度;不存在的名称返回nil
geodist返回两个给定位置之间的距离`geodist key member1 member2 [mkmft
georadius以给定的经纬度为中心,返回与中心的距离不超过给定最大距离的所有位置元素`georadius key longitude latitude radius mkmft

Hyperloglog的基本语法

用于基数估算
适合用于需要估算大量集合中唯一元素数量的场景,例如统计网站的独立访客数量。
提供的基数是估计值,而不是精确值,但它在处理大量数据时非常高效且占用较少的内存空间。

命令描述语法格式示例注意事项
pfadd将所有元素参数添加到HyperLogLog数据结构中pfadd key element1 element2 ...pfadd book1 uid1 uid2 uid3如果至少有一个元素被添加,则返回1;否则返回0
pfcount计算HyperLogLog的近似基数,可以计算多个HyperLogLog的基数总和pfcount key1 key2 ...pfcount book1pfcount book1 book2基数是估计值,不是精确值;可以计算多个key的基数总和
pfmerge将一个或多个HyperLogLog合并成一个新的HyperLogLogpfmerge destkey sourcekey1 sourcekey2 ...pfmerge book book1 book2合并后的HyperLogLog将包含所有源HyperLogLog中的唯一元素

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2261443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java 数据结构】List -> 给我一个接口!!!

🔥博客主页🔥:【 坊钰_CSDN博客 】 欢迎各位点赞👍评论✍收藏⭐ 目录 1. 什么是 List 2. List 常用的方法 3. List 的使用 1. 什么是 List 其实 List 是一个接口,它继承了 Collection 接口 下列为 List 接口中的各种…

【5G】5G的主要架构选项

最初,在3GPP讨论中考虑了所有可能的聚合和核心网络组合,共有八个架构选项。以下重点介绍option2、3、4和7。 1. 独立组网 (Standalone, SA) 架构选项 2 :Standalone architecture with 5G-core 特点: 5G核心网(5GC, …

Ajax简单理解

Ajax 1 什么是ajax AJAXAsynchronous JavaScript and XML (异步的JavaScript和XML)AJAX不是新的编程语言,二十一种使用现有标准的新方法 AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。 AJAX 不需要任何浏…

【GESP】C++二级考试大纲知识点梳理, (2)计算机网络的基本概念及分类

GESP C二级官方考试大纲中,共有9条考点,本文针对C(2)号知识点进行总结梳理。 (2)了解计算机网络的概念,了解计算机网络的分类(广域网(WAN)、城域网&#xff0…

相机与NAS的奇妙组合,如何使用相机拍照自动上传或备份到NAS

相机与NAS的奇妙组合,如何使用相机拍照自动上传或备份到NAS 哈喽小伙伴们好,我是Stark-C~ 对于喜欢使用专业器材拍照摄影的小伙伴来说,想要将相机存储卡中的照片或视频导出到电脑上,要么是使用数据线直接和相机连接,…

window下的qt5.14.2配置vs2022

这里做一个笔记,已知qt5.14.2和vs2022不兼容,无法自动扫描到vs的编译器。但由于团队协作原因,必须使用qt5.14.2,并且第三方库又依赖vs2022。其实qt5.15.2是支持vs2022的,如果能够用qt5.15.2,还是建议使用qt…

QT从入门到精通(一)——Qlabel介绍与使用

1. QT介绍——代码测试 Qt 是一个跨平台的应用程序开发框架,广泛用于开发图形用户界面(GUI)应用程序,也支持非图形应用程序的开发。Qt 提供了一套工具和库,使得开发者能够高效地构建高性能、可移植的应用程序。以下是…

【协作笔记Trilium Notes Docker部署】开源协作笔记Trilium Notes本地Docker部署远程协作

文章目录 前言1. 安装docker与docker-compose2. 启动容器运行镜像3. 本地访问测试4.安装内网穿透5. 创建公网地址6. 创建固定公网地址 前言 今天分享一款在G站获得了26K的强大的开源在线协作笔记软件,Trilium Notes的中文版如何在Linux环境使用docker本地部署&…

app的测试范围以及web和app的测试区别

目录 图1.App的测试范围1.1功能测试1.2专项测试1.3性能测试 2.Web和App的测试区别2.1相同点2.2不同点 👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的青睐是我努力的方向! ✏️ 评论,你的意见是我进步的…

数据分析实战—鸢尾花数据分类

1.实战内容 (1) 加载鸢尾花数据集(iris.txt)并存到iris_df中,使用seaborn.lmplot寻找class(种类)项中的异常值,其他异常值也同时处理 。 import pandas as pd from sklearn.datasets import load_iris pd.set_option(display.max_columns, N…

docker 拉取镜像 | 创建容器 | 容器运行

拉取镜像 拉取镜像的命令:docker pull name (name换为你要拉取的镜像名) docker pull docker.1panel.live/hispark/qiankunbp:1.0.0 docker.1panel.live/hispark/qiankunbp:1.0.0为镜像名 拉取海思的镜像:(如果之前拉…

添加标签(vue3)

点击添加按钮: 最多添加5个 注意: 不只可以el-form 进行校验,也可以对单个el-form-item 进行校验 vue elementUI form组件动态添加el-form-item并且动态添加rules必填项校验方法-CSDN博客 el-form 里边有el-form-item ,el-fo…

Dash for Mac 代码API文档管理软件安装

Mac分享吧 文章目录 Dash for Mac 代码API文档管理软件 效果图展示一、Dash 代码API文档管理软件 Mac电脑版——v7.3.31️⃣:下载软件2️⃣:安装软件2.1 左侧安装包拖入右侧文件夹中,等待安装完成,运行软件2.2 打开软件&#xff…

Unity添加newtonsoft-json

package name "com.unity.nuget.newtonsoft-json": "3.2.1",打开包管理器 输入包名称和版本 点击添加

分布式全文检索引擎ElasticSearch-数据的写入存储底层原理

一、数据写入的核心流程 当向 ES 索引写入数据时,整体流程如下: 1、客户端发送写入请求 客户端向 ES 集群的任意节点(称为协调节点,Coordinating Node)发送一个写入请求,比如 index(插入或更…

TensorRT C++ API模型加速 —— TensorRT配置、模型转换、CUDA C++加速、TensorRT C++ 加速

文章目录 前言:TensorRT简介0.1、TensorRT算法流程0.2、TensorRT主要优化技术 一、TensorRT配置1.1、TensorRT环境配置1.1.1、CUDA安装1.1.2、TensorRT下载1.1.3、TensorRT CUDA配置1.1.4、TensorRT配置1.1.4.1、TensorRT python配置1.1.4.2、TensorRT C配置&#x…

RPC 服务与 gRPC 的入门案例

RPC 协议 RPC(Remote Procedure Call Protocol)即远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务的协议,允许一个计算机程序可以像调用本地服务一样调用远程服务 。 RPC的主要作用是不同的服务间方法调用就像本地…

基于Spring Boot的体育商品推荐系统

一、系统背景与目的 随着电子商务的快速发展和人们健康意识的提高,体育商品市场呈现出蓬勃发展的态势。然而,传统的体育商品销售方式存在商品种类繁多、用户选择困难、个性化需求无法满足等问题。为了解决这些问题,基于Spring Boot的体育商品…

在 DDD 中优雅的发送 Kafka 消息

前言 1:host 映射 下载 SwitchHost 配置一个映射地址。点击 添加一个本地环境,之后配置你的 IP kafka 这样就能找这个地址了。IP 为你本地的IP,如果是云服务器就是公网IP地址 使用docker-compose.yml进行一键部署安装 version: 3.0 # docker-compose …

数字电视标准与分类

数字电视相关内容是一个极其成熟且久远的领域,并不像其它的技术方面那么前沿。但是学习技术的另外一个方面也不就是可以维持咱们的好奇心以及认识生活中多个事务后面的技术本质。 近年来,电视领域发生了一系列的变化,电视数字化的进程明显加快…