三、Redis命令

一、Redis客户端

Redis是一个客户端和服务器结构的程序,Redis的客户端有很多种形态

通过以下的方法实现Redis客户端和服务器交互,必须先进入Redis-cli客户端程序,才能输入Redis命令。

1、自带了命令行客户端
redis-cli //连接本地
redis-cli -h 127.0.0.1 -p 6379 //连接其他主机的端口 h代表host p代表post
2、图形化界面的客户端

桌面程序、web程序,使用场景很少

图形化程序依赖windows系统,而在实际工作中,用来办公的windows系统,连接到服务器可能有诸多限制。

3、基于Redis的api自行开发客户端(最常用的方法)

类似于MySQL的c语言API 和 JDBC

二、Redis常用命令

命令作用备注
set/get

  设置key值与value值/查询key值对应的value值

keys查看匹配规则的key模糊查询,keys *很危险
exists查询对应的key是否存在
del删除指定的key与MySQL删除数据的区别
expire/ttl给key设置过期时间/查询key的过期时间redis的过期策略
type查询key对应的value类型

 

1、get 和 set

get:根据key来取value

set:把key和value存储进去

 key和value都要是string类型的

set key1 value1
get key
2、keys

用来查询当前服务器上匹配的key,通过一些特殊符号(通配符)来描述key的模样,匹配上述模样的key就能被查询下来

keys pattern

patten具体是怎么写的呢?

?         匹配任意一个字符

*          匹配任意0个/多个任意字符

[abc]    只能匹配到a b c,别的不行。相当于给出固定的选项了

[^a]      排除a  

[a-c]     a,b,c都可以,两侧闭区间

set hello 1 
set hbllo 1
ser hllo 1
set heeeeeeello 1keys h?llo      //匹配上hello hbllo
keys h*o        //四个全匹配上
keys h[eb]llo   //匹配上hello hbllo
keys h[^e]llo   //匹配上hbllo 
keys h[b-e]llo  //匹配上hello hbllo

注意:keys命令的时间复杂度是O(N),所以在生产环境上,一般都禁止使用,尤其是keys *,查询所有的key。因为生产环境上的key非常多,而Redis是一个单线程的服务器,执行key *的时间非常长,就使Redis服务器被阻塞了,无法给其他客户端提供服务。

3、exists

判定某个key是否存在,返回值是key存在的个数(针对查询多个key),可以一次查询一个或者多个

时间复杂度O(1),Redis组织这些key就是按照 哈希表 的方式来组织的

set hello 1 
set hbllo 1
ser hllo 1
set heeeeeeello 1exists hello       //返回1
exists hello hbllo //两个key都存在,返回2
4、del

删除指定的key,可以一次删除一个或者多个,返回值是删除掉的key的个数

del hello           //返回1
del hello hallo aaa //返回2,因为aaa并不存在

此处的删除并不严重,因为Redis主要的应用场景,就是作为缓存,此时Redis里存的只是一个热点数据,全量数据在MySQL类似的数据库中,一般来说删除几个key问题不大。但是如果Redis没有数据了,大部分请求直接打给MySQL,就容易把MySQL搞挂。

5、expire和ttl

expire:给指定的key设置过期时间,设置的单位是秒。返回1表示设置成功,返回0表示设置失败。时间复杂度为O(1)。时间过了key自动删除。

很多业务场景,都是有时间限制的,比如手机验证码;优惠券在指定时间内有效;基于Redis的分布式锁,为了避免出现不能正确解锁的情况,通常都会在加锁的时候设置一下过期时间。

expire hello 300  //设置过期时间为5分钟(300秒)

对于计算机来说,秒是一个非常长的时间,于是pexpire出现了,单位是毫秒。

ttl:time to live。查看当前key的剩余过期时间还有多少。ttl单位是秒,pttl 单位是毫秒。返回-1代表没有过期时间,返回-2代表key不存在。

ttl hello  

拓展:Redis的过期策略是怎么实现的。

Redis的key过期策略是怎么实现的-CSDN博客

6、type

查询key对应的value类型。在Redis中,key的类型都是string,value对应的可能存在多种数据类型,比如none,string,list,set,zset(有序集合),hash,stream(Redis作为消息队列的时候,使用这个类型).....时间复杂度O(1)

set  key1 111
type key1    //返回string lpush key2 111 222 333
type  key2  //返回listsadd  key3 111 222 333
type  key3  //返回sethset  key4 filed1 value1
type  key4   //返回hash

 

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

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

相关文章

jQuery的选择器

目录 基本过滤选择器 层次选择器 简单过滤选择器 内容过滤选择器 可见性过滤器 子元素过滤器 表单对象属性顾虑器 表单选择器 jQuery的选择器分类都有哪些? 根据所获取页面中元素的不同,可以将jQuery选择器分为四大类:基本选择器…

深入了解 Pytest Markers:提升测试用例的组织和控制能力

​从这篇开始,逐一解决fixture是啥?mark是啥?参数request是啥?钩子函数是啥?parametrize参数化是啥?这些问题。本片先介绍一下mark是啥?以及如何使用 Markers有啥用? 当使用 Pytest…

ZooKeeper 实战(五) Curator实现分布式锁

文章目录 ZooKeeper 实战(五) Curator实现分布式锁1.简介1.1.分布式锁概念1.2.Curator 分布式锁的实现方式1.3.分布式锁接口 2.准备工作3.分布式可重入锁3.1.锁对象3.2.非重入式抢占锁测试代码输出日志 3.3.重入式抢占锁测试代码输出日志 4.分布式非可重入锁4.1.锁对象4.2.重入…

SAP PI之Rest adapter

一,简介 REST风格接口是以http为传输协议,以xml或json或text为有效负载。下图展示了REST到XI再返回的一个过程,一个REST接口包含的信息有:服务URL、URL中带的参数、http方法(post/get/put等)、http头部、body部分的有效载荷。而X…

Sentinel限流、熔断

1、限流 单个服务节点限流 sentinel 提供了两种不同的隔离机制:信号量隔离和线程池隔离,它们的主要区别如下: 信号量隔离(Semaphore Isolation): 原理:信号量隔离基于计数器(或称令…

React Hooks大全—useContext

在本文中,我们将重点介绍useContext这个Hook,它可以让你在函数组件中轻松地访问React Context,从而实现跨组件的状态共享。我们将从基本使用,实现原理,最佳实践,以及一些常见的问题和解决方案来探讨useCont…

域名群站开源系统分享开源域名授权系统

一、需要自己安装PHP和MYSQL服务器环境。 二、务必设置伪静态规则,否则将无法访问文章栏目页面。 三、启用伪静态功能,请在站点设置中选择使用thinkphp的伪静态规则。 四、在域名的根目录下找到”data/config.php”文件,填入数据库的账号和…

C++ 中 static 应用

static 实验介绍 在 C/C++ 中都可以使用 static 关键字,但是却需要注意在 C 与 C++ 的使用方法有差异。C++ 除了继承 C 中 static 的使用方法外还增加了新的使用方法。本次实验主要介绍 static 在 C++ 中的使用方法。 静态的成员在实例化对象之前已经产生,并将数据存放在全…

配置zabbix监控平台

目录 内容纯手敲,难免有误,若发现请私信我。 配置zabbix监控平台 一、进入官网 ​编辑​ 二、配置zabbix-server(服务端) 1.下载zabbix的yum源 2.安装Zabbix服务器、前端、代理 3.安装Zabbix前端 4.编辑文件/etc/yum.rep…

openssl3.2 - quic服务的运行

文章目录 openssl3.2 - quic服务的运行概述笔记运行openssl编译好的quic服务程序todo - 如果自己编译quic服务工程补充 - 超过30秒不连接uqic服务会退出END openssl3.2 - quic服务的运行 概述 在看 官方 guide目录下的工程. 都是客户端程序, 其中有quic客户端, 需要运行quic服…

【算法Hot100系列】旋转图像

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

开发安全之:Cross-Site Scripting (XSS) 漏洞

近期,我会结合研发云陆续发布开发安全相关的文章,欢迎大家关注! Overview echo json_encode($arr):向一个 Web 浏览器发送了未验证的数据,从而导致该浏览器执行恶意代码。 Details Cross-Site Scripting (XSS) 漏洞…

软件测试|python如何去除文件后缀名?

简介 在Python中,我们常常需要操作文件,包括文件的读取、写入、重命名等操作。在文件操作中,我们经常会遇到需要去除文件后缀的问题。那么,Python如何去除文件后缀呢?本文我们将介绍如何使用Python来去除文件后缀。 …

大模型学习与实践笔记(六)

一、finetune 简介 两种微调模式:增量预训练 与指令跟随 1.增量预训练 2.指令微调 二、LoRA 与 QLoRA 介绍 三、XTuner 介绍 四、低显存玩转LLM的方法

Spring Boot整理-Spring Boot的优势

Spring Boot 提供了多个显著的优势,特别是对于快速开发和简化 Spring 应用的配置和部署。这些优势包括: 简化配置:Spring Boot 的“约定优于配置”的原则意味着许多 Spring 应用的常见配置项被自动设置,这减少了开发人员需要编写和维护的配置代码量。快速启动和部署:Sprin…

陶哲轩工作流之人工智能数学验证+定理发明工具LEAN4 [线性代数篇2前置知识]不同求和范围不同函数项结果相等的条件

有空点赞我的视频哦:陶哲轩工作流之人工智能数学验证定理发明工具LEAN4 [线性代数篇2前置知识]不同求和范围不同函数项结果相等的条件_哔哩哔哩_bilibili -- 反向推理 refine sum_bij _ _ _ _ _ -- {s : Finset α} {t : Finset γ} {f : α → β} {g : γ → β…

Linux网络之PXE高效批量装机、Kickstart全自动化安装

一. PXE网络装机简介和相关知识 1. 常见的三种系统安装方式和相关文件 ① 三种系统安装方式 u启动安装:在U盘中下载相关的安装系统及镜像文件,u盘插机安装 光驱安装:将带有所需系统的光盘放进电脑服务器中,按照官方引导装机 …

春节假期出游一些很实用的手机技巧!这样玩,就很哇塞~

随着春节的脚步越来越近,无论是准备出游还是回家,你蠢蠢欲动的心是否已经拦不住了?华为 nova 12系列这些很哇塞的玩法你必须知道!这个新年让你旅行出圈有秘籍! 出发前智慧播报航班信息不错过。智慧播报的功能就很实…

AI大模型学习笔记之二:什么是 AI 大模型的训练和推理?

在人工智能(AI)的领域中,我们经常听到训练(Training) 和 推理(Inference) 这两个词汇,它们是构建强大 AI 模型的关键步骤。我们通过类比人类的学习过程来理解这两个概念,可以更加自然而生动地理…

JUC(java.util.concurrent)的常见类(多线程编程常用类)

Callable接口 这个东西可以类比于之前见过的Runnable接口.两者的区别在于Runnable关注执行过程,不关注执行结果.Callable关注执行结果,它之中的call方法(类比于run方法)返回值就是线程执行任务的结果.Callable<V>里面的V期望线程的入口方法里,返回值是啥类型,此处的泛型参…