【Redis】Redis命令(一)

news2024/12/28 3:36:56

1.基本命令

     1.1.切换DB

        默认使用的是 0 号 DB,可以通过 select db 索引来切换 DB

        

     1.2.查看 key 数量

        dbsize 命令可以查看当前数据库中 key 的数量

        

     1.3.删除当前库中数据

        flushdb 命令仅仅删除的是当前数据库中的数据,不影响其它库

        

     1.4.删除所有库中数据命令

        flushall 命令可以删除所有库中的所有数据

        

     1.5.退出客户端命令

        使用 exit 或 quit 命令均可退出 Redis 命令行客户端

2.Key 操作命令

        Redis 中存储的数据整体是一个 Map,它的 key 是 String 类型, value 则可以是 String、 Hash 表、List、Set 等类型

     2.1.keys

        1)命令:keys pattern

        2)功能:查找所有符合给定模式 pattern 的 key,pattern 为正则表达式,如:keys *h* 查找DB所有key名含有h的;keys * 查询所有key。keys 的速度非常快,但在一个大的数据库中使用它可能会阻塞当前服务器的服务。生产环境中一般不使用该命令,而使用 scan 命令代替

     2.2.exists

        1)命令:exists key

        2)功能:检查给定 key 是否存在,若存在返回1,反之返回0

     2.3.del

        1)命令:DEL key [key ...]

        2)功能:删除给定的一个或多个 key 。不存在的 key 会被忽略,返回被删除数量

     2.4.rename

        1)命令:RENAME key newkey

        2)功能:将 key 改名为 newkey,当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。当 newkey 已经存在时,将已存在的覆盖

     2.5.move

        1)命令:MOVE key db

        2)功能:将当前数据库的 key 移动到给定的数据库 db 当中,如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key , 或者 key 不存在于当前数据库,那么 MOVE 没有任何效果,成功返回1反之返回0

     2.6.type

        1)命令:TYPE key

        2)功能:返回 key 所储存的值的类型,none (key 不存在) ,string (字符串) ,list (列表) ,set (集合) , zset (有序集) , hash (哈希表)

     2.7.expire 与 pexpire

        1)命令:EXPIRE key seconds

        2)功能:为给定 key 设置生存时间,当 key 过期时(生存时间为 0),它会被自动删除。 expire 的时间单位为秒,pexpire 的时间单位为毫秒。在 Redis 中,带有生存时间的 key 被称为“易失的”(volatile)。rename 操作不会改变 key 的生存时间

     2.8.ttl 与 pttl

        1)命令:TTL key

        2)功能::返回给定 key 的剩余生存时间,当 key 不存在时,返回 -2 ;当 key 存在但没有设置剩余生存时间时,返回 -1 ;否则,返回 key 的剩余生存时间

     2.9.persist

        1)命令:PERSIST key

        2)功能:去除给定 key 的生存时间,将这个 key 从“易失的”转换成“持久的”

     2.10.randomkey

        1)命令:RANDOMKEY

        2)功能:从当前数据库中随机返回(不删除)一个 key,当数据库为空时,返回 nil

     2.11.scan

        1)命令:SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]

        2)功能:用于迭代数据库中的数据库键。SCAN 命令每次被调用之后,都会向用 户返回返回一个包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标, 而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。用户在下次迭代 时需要使用这个新游标作为 SCAN 命令的游标参数,以此来延续之前的迭代过程。当 SCAN 命令的游标参数被设置为 0 时,服务器将开始一次新的迭代。如果新游标返回 0 表示迭代已结束。

        3)说明:cursor:本次迭代开始的游标。pattern :本次迭代要匹配的 key 的模式。count :本次迭代要从数据集里返回多少元素,默认值为 10 ,但返回的数量不一定符合count值。type:本次迭代要返回的 value 的类型,默认为所有类型。使用间断的、负数、超出范围或者其他非正常的游标来执行增量式迭代不会造成 服务器崩溃。当数据量很大时,count 的数量的指定可能会不起作用,Redis 会自动调整每次的遍 历数目。由于 scan 命令每次执行都只会返回少量元素,所以该命令可以用于生产环境, 而不会出现像 KEYS 命令带来的服务器阻塞问题。

        4)count问题详解:https://www.cnblogs.com/zhaoyongjie-z/p/14311711.html

3.value是String型操作命令

     3.1.set

        1)命令:SET key value [EX seconds | PX milliseconds] [NX|XX]

        2)功能:为 key 设值。EX seconds:为当前 key 设置过期时间,单位秒。等价于 SETEX 命令。PX milliseconds:为当前 key 设置过期时间,单位毫秒。等价于 PSETEX 命令。NX:指定的 key 不存在才会设置成功,用于添加指定的 key。等价于 SETNX 命令。  XX:指定的 key 必须存在才会设置成功,用于更新指定 key 的 value

     3.2.setex 与 psetex

        1)命令:SETEX/PSETEX key seconds value

        2)功能:不仅为 key 指定了 value,还为其设置了生存时间。setex 的单位为 秒,psetex 的单位为毫秒,如果 key 已经存在, 则覆写旧值,在 Redis 用作缓存时,非常实用

     3.3.setnx

        1)命令:SETNX key value

        2)功能:将 key 的值设为 value ,当且仅当 key 不存在。若给定的 key 已经存在,则 SETNX 不做任何动作

     3.4.getset

        1)命令:GETSET key value

        2)功能:将给定 key 的值设为 value ,并返回 key 的旧值,当 key 存在但不是字符串类型时,返回一个错误;当 key 不存在时,返回 nil

     3.5.mset 与 msetnx

        1)命令:MSET/MSETNX key value [key value ...]

        2)功能::同时设置一个或多个 key-value 对,如果某个给定 key 已经存在,那么 MSET 会用新值覆盖原来的旧值;MSETNX 命令则不会

     3.6.mget

        1)命令:MGET key [key ...]

        2)功能:返回所有(一个或多个)给定 key 的值,如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil,该命令永不失败

     3.7.append

        1)命令:APPEND key value

        2)功能:如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原 来的值的末尾。如果 key 不存在, APPEND 就简单地将给定 key 设为 value

     3.8.incr 与 decr

        1)命令:INCR key 或 DECR key

        2)功能:incr 自动递增,将 key 中存储的数字值增一。decr 自动递减,将 key 中存储的数字值减一。如果 key 不存在,那么 key 的值会先被初始化为 0,然后再执行增一/减一操作。 如果值不能表示为数字,那么返回一个错误提示。如果执行正确,则返回增一/减一后的值

     3.9.incrby 与 decrby

        1)命令:INCRBY key increment 或 DECRBY key decrement

        2)功能:将 key 中存储的数字值增加/减少指定的数值,这个数值只能是整数,可以是负 数,但不能是小数。如果 key 不存在,那么 key 的值会先被初始化为 0,然后再执行增/减操作。如 果值不能表示为数字,那么返回一个错误提示。如果执行正确,则返回增/减后的值

     3.10.incrbyfloat

        1)命令:INCRBYFLOAT key increment

        2)功能:为 key 中所储存的值加上浮点数增量 increment,如果 key 不存在,那么 key 的值会先被初始化为 0,然后再执操作

     3.11.strlen

        1)命令:STRLEN key

        2)功能:返回 key 所储存的字符串值的长度

     3.12.getrange

        1)命令:GETRANGE key start end

        2)功能:返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移 量决定,包括 start 和 end 在内,支持负数偏移量,表示从字符串最后开始计数,-1 表示 最后一个字符,-2 表示倒数第二个

     3.13.setrange

        1)命令:SETRANGE key offset value

        2)功能:用 value 参数替换给定 key 所储存的字符串值 str,从偏移量 offset 开始,当 offset 值大于 str 长度时,中间使用零字节\x00 填充,即 0000 0000 字节填充; 对于不存在的 key 当作空串处理

     3.14.典型应用场景

        1)数据缓存

           Redis 作为数据缓存层,应用服务器首先从 Redis 中获取数据, 如果缓存层中没有,则从 数据库中获取,然后先存入缓存层再返回给应用服务器。

        2)计数器

           在 Redis 中写入一个 value 为数值型的 key 作为平台计数器、视频播放计数器等,每次有效客户端访问一次,或视频每播放一次,都是直接修改 Redis 中的计数器,然后再以异步 方式持久化到其它数据源中

        3)共享 Session

           可以将系统中所有用户的 Session 数据全部保存到 Redis 中,用户在提交新的请 求后,系统先从 Redis 中查找相应的 Session 数据,如果存在,则再进行相关操作,否则跳 转到登录页面

        4)限速器

           为了防止 DoS(Denial of Service,拒绝服务)攻击,让一个 IP 不能在一秒内访问超过 n 次。而 Redis 可以可以结合 key 的过期时间与 incr 命令来完成限速功能,充当限速器。无法防止 DDoS(Distributed Denial of Service,分布式拒绝服务)攻击

    

                

  

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

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

相关文章

Spring Cloud架构进化实操:Eureka、Apollo、OpenFeign、Ribbon、Zuul组件

文章目录 前言一、引出二、服务注册与发现2.1 创建Eureka注册中心2.1.1 引入pom依赖2.1.2 配置yaml2.1.3 启动服务21.4 测试访问 2.2 创建服务提供者2.2.1 配置yaml2.2.2 启动服务2.2.3 测试访问 2.3 创建服务消费者2.3.1 服务提供者接口2.3.2 服务消费者调用接口 三、负载均衡…

如何高速下载,百度 阿里 天翼 等网盘内的内容

如何高速下载,百度 阿里 天翼 等网盘内的内容🏅 前言教程下期更新预报🏅 前言 近段时间经常给大家分享各种视频教程,由于分享的资料是用迅雷网盘存的,但是绝大部分用户都是使用的某度,阿某的这些网盘&…

OpenCV如何使用 GDAL 读取地理空间栅格文件(72)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV的周期性噪声去除滤波器(70) 下一篇 :OpenCV系列文章目录(持续更新中......) 目录 目标 代码: 解释: 如何使用 GDAL 读取栅格数据 注意 …

DS:顺序表、单链表的相关OJ题训练(1)

欢迎各位来到 Harper.Lee 的学习小世界! 博主主页传送门:Harper.Lee的博客主页 想要一起进步的uu可以来后台找我交流哦! 在DS:单链表的实现 和 DS:顺序表的实现这两篇文章中,我详细介绍了顺序表和单链表的…

【区块链】比特币架构

比特币架构 2009年1月,在比特币系统论文发表两个月之后,比特币系统正式运行并开放了源码,标志着比特币网络的正式诞生。通过其构建的一个公开透明、去中心化、防篡改的账本系统,比特币开展了一场规模空前的加密数字货币体验。在区…

javascript 练习 写一个简单 另类录入 电脑组装报价表 可打印

数据格式 &#xff08;1代表cpu、2代表主板、3代表内存、。。。&#xff09; 1i3 12100 630 2H610 480 3DDR4 3200 16G 220 4500G M.2 299 5300W电源 150 6小机箱 85 7GT 730G 4G 350 8WD 2T 399 9飞利浦 24Led 580 主代码 Html JS <!DOCTYPE html> <html lang&qu…

Unity之ShaderGraph入门简介与配置

前言 ShaderGraph是Unity的一个可视化着色器编辑工具,它允许开发者在不编写代码的情况下创建复杂的着色器效果。ShaderGraph提供了一个直观的图形界面,用户可以通过拖拽节点并连接它们来构建自定义的着色器。用户可以在ShaderGraph中使用各种节点,如数学运算、纹理采样、颜…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(五)

本系列课程&#xff0c;将重点讲解Phpsploit-Framework框架软件的基础使用&#xff01; 本文章仅提供学习&#xff0c;切勿将其用于不法手段&#xff01; 继续接上一篇文章内容&#xff0c;讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 在下面的图片中&#…

「 网络安全常用术语解读 」通用配置枚举CCE详解

1. 背景介绍 NIST提供了安全内容自动化协议&#xff08;Security Content Automation Protocol&#xff0c;SCAP&#xff09;为漏洞描述和评估提供一种通用语言。SCAP组件包括&#xff1a; 通用漏洞披露(Common Vulnerabilities and Exposures, CVE)&#xff1a;提供一个描述…

K8S 哲学 - 服务发现 services

apiVersion: v1 kind: Service metadata:name: deploy-servicelabels:app: deploy-service spec: ports: - port: 80targetPort: 80name: deploy-service-podselector: app: deploy-podtype: NodePort service 的 endPoint &#xff08;ep&#xff09; 主机端口分配方式 两…

LeetCode 234.回文链表

题目描述 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为 回文链表 。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,2,1] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff…

学习笔记:【QC】Android Q - IMS 模块

一、IMS init 流程图 二、IMS turnon 流程图 三、分析说明 1、nv702870 不创建ims apn pdp 2、nv702811 nv702811的时候才创建ims pdp&#xff1a; ims pdp 由ims库发起&#xff0c;高通没有开放这部分代码&#xff1a; 10-10 11:45:53.027 943 943 E Diag_Lib: [IMS_D…

开源im即时通讯app源码系统/php即时聊天im源码/php+uniapp框架【终身使用】

摘要 随着开源文化的蓬勃发展&#xff0c;即时通讯(IM)系统作为现代通信不可或缺的一部分&#xff0c;其开源实现正变得越来越普遍。本文将深入探讨基于PHP的全开源即时通讯源码系统&#xff0c;并结合UniApp开源框架&#xff0c;从理论基础到代码实现&#xff0c;再到实际应用…

SpringCloudAlibaba:4.1云原生网关higress的搭建

概述 简介 Higress是基于阿里内部的Envoy Gateway实践沉淀、以开源Istio Envoy为核心构建的下一代云原生网关&#xff0c; 实现了流量网关 微服务网关 安全网关三合一的高集成能力&#xff0c;深度集成Dubbo、Nacos、Sentinel等微服务技术栈 定位 在虚拟化时期的微服务架构…

微信小程序之搜索框样式(带源码)

一、效果图&#xff1a; 点击搜索框&#xff0c;“请输入搜索内容消失”&#xff0c;可输入关键字 二、代码&#xff1a; 2.1、WXML代码&#xff1a; <!--搜索框部分--><view class"search"><view class"search-btn">&#x1f50d;&l…

kettle从入门到精通 第五十六课 ETL之kettle Microsoft Excel Output

1、9.4 版本的kettle中有两个Excel输出&#xff0c;Excel输出和Microsoft Excel输出。前者只支持xls格式&#xff0c;后者支持xls和xlsx两种格式&#xff0c;本节课主要讲解步骤Microsoft Excel输出&#xff0c;如下图所示&#xff1a; 1&#xff09;、步骤【生成记录】生成两条…

VUE v-for 数据引用

VUE 的数据引用有多种方式。 直接输出数据 如果我们希望页面中直接输出数据就可以使用&#xff1a; {{ pageNumber }}双括号引用的方式即可。 在 JavaScript 中引用 如果你需要直接在代码中使用&#xff0c;直接使用变量名就可以了。 上面这张小图&#xff0c;显示了引用的…

「 网络安全常用术语解读 」通用安全通告框架CSAF详解

1. 简介 通用安全通告框架&#xff08;Common Security Advisory Framework&#xff0c;CSAF&#xff09;通过标准化结构化机器可读安全咨询的创建和分发&#xff0c;支持漏洞管理的自动化。CSAF是OASIS公开的官方标准。开发CSAF的技术委员会包括许多公共和私营部门的技术领导…

Ubuntu 域名解析出现暂时性错误

Ubuntu 域名解析出现暂时性错误 问题描述解决方案 问题描述 由于在Ubuntu系统里面经常切换网络导致&#xff0c;系统一直处于有线网络连接但是没网状态&#xff0c;尝试ping网络也无法完成&#xff0c;尝试了很多方法均不能解决 解决方案 点击”虚拟机“ 按照要求设置好即可…

Grafana:云原生时代的数据可视化与监控王者

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Grafana&#xff1a;让数据说话的魔术师》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Grafana简介 2、Grafana的重要性与影响力 …