Redis数据库常用语句

news2024/11/15 4:42:19

Redis数据库常用语句

  • 前言
  • 1. 键(Key)的基本操作
    • 1.1 增加新的键值对
    • 1.2 访问键的值
    • 1.3 修改键值对
    • 1.4 键值对的删除
    • 1.5 判断键值对是否存在
    • 1.6 获取所有键
    • 1.7 删除所有的键:
  • 2. Redis 中的列表
    • 2.1 列表加入新元素
    • 2.2 获取列表长度
    • 2.3 获取指定下标的元素
    • 2.4 获取指定范围内的列表值
    • 2.5 列表元素出栈
    • 2.6 列表值裁剪
  • 3. 集合
    • 3.1 添加元素
    • 3.2 获取集合中的元素个数
    • 3.3 移除集合中的元素
    • 3.4 判断元素是否在集合中
    • 3.5 获取集合间的交集
    • 3.6 获取集合的所有元素
    • 集合元素移动
  • 结尾

前言

操作系统:Windows10 家庭版本

开发环境:Pycharm Comunity 2022.3

Python解释器版本:Python3.8

第三方库:Redis

1. 键(Key)的基本操作

1.1 增加新的键值对

基本语法是:

set keyname value

使用下面这条语句就能设置name的值为"H2"了,它将返回 “OK” :

set name H2

SET KEY VALUE

1.2 访问键的值

基本语法:

get keyname

例如:

get name

它将返回对应的值:

GET NAME

如果访问的键不存在,它将返回空 (真的啥也没有):
在这里插入图片描述

1.3 修改键值对

修改值

set name new_value

这个和新增值一样,原理是使用原来的键值对替代旧的键值对:
在这里插入图片描述

修改键

rename oldname newname

使用示例如下,名称已经被修改完毕,旧的键一去不返了:
在这里插入图片描述

1.4 键值对的删除

基本语法:

del keyname 

就如下图所示,将键值对删除:

在这里插入图片描述

1.5 判断键值对是否存在

exists keyname

这条语句像是抛出一个问题,keyname存在吗?如果存在将返回1,不存在将返回0

如下图:

在这里插入图片描述

1.6 获取所有键

使用这个即可

keys *

将打印所有的键名:
在这里插入图片描述

1.7 删除所有的键:

删除 当前 数据库的所有键值对

flushdb

在这里插入图片描述
删除 所有 数据库的键值对

flushall

这两条删除命令切记需要慎用

2. Redis 中的列表

我认为比起列表它更像是堆栈

2.1 列表加入新元素

列表无需新建或者初始化,直接往里面放值就行了:

lpush list H2 F2 O2 CL2

它将返回操作后列表的长度:
在这里插入图片描述

lpush 的意思是从左边压入若干个元素

还有一条从右边压入元素的语句如下:

rpush listname name1 name2 name3

2.2 获取列表长度

llen listname

在这里插入图片描述

2.3 获取指定下标的元素

lindex listname i

值得一提的是它的编号顺序和堆栈一样,如果你没有数据结构基础你可以去看看栈的原理来理解它:
在这里插入图片描述

2.4 获取指定范围内的列表值

lrange listname x y

可以看到将所有元素打印出来了,此刻你就能理解 LLEN 的重要性:

在这里插入图片描述

2.5 列表元素出栈

下面这条指令将自动弹出列表的第一个元素

lpop list

注意 被 pop 的元素将不复存在,如果你想这个值以后依然能够被使用,那你可以尽量选择索引号获取列表值的方式:

在这里插入图片描述
lpop 的意思是从左边弹出一个元素

还有一条从右边弹出元素的语句如下:

rpop listname

2.6 列表值裁剪

ltrim list 1 2

再次范围之外的元素将被删除,谨慎使用 !
在这里插入图片描述

3. 集合

顾名思义,集合就是集合,具有单一性,无序性,确定性。

3.1 添加元素

与列表一样,向集合中直接添加元素会新建集合

使用sadd语句向集合中添加一个或多个元素

sadd set name1 name2 name3

会返回集合的元素个数

在这里插入图片描述

3.2 获取集合中的元素个数

和列表中的llen()

scard keyname

在这里插入图片描述

3.3 移除集合中的元素

使用下面的语句来 随机移除集合中的一个元素

spop keyname

被移除的元素将不复存在

在这里插入图片描述

3.4 判断元素是否在集合中

sismemroy keyname element

如果是在集合中则返回1,否则返回0

在这里插入图片描述

3.5 获取集合间的交集

使用 sinter 来获取集合中的交集:

sinter setname1 setname2

在这里插入图片描述

3.6 获取集合的所有元素

smembers keyname

如图:

在这里插入图片描述

集合元素移动

下面这条语句会把source集合中的member移动到destination集合

SMOVE source destination member

在这里插入图片描述

结尾

本节学习了Redis数据库的一些常用的操作,学海无涯,还有很多更高级、高效的用法没学。

下节我们将学习使用Python来操作我们的Redis数据库。

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

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

相关文章

Android App 架构 面试专题,你可能会被问到的 20 个问题

iveData 是否已经被弃用? 没有被弃用。在可以预见的未来也没有废弃的计划。 LiveData 可以使用简单的方式获取一个易于观察、状态安全的对象。虽然其缺少一些丰富的操作符,但是对于一些简单的 UI 业务场景已经足够。 Flow 有 LiveData 相同的功能,其…

1.栈的介绍-C语言调用函数(二)

1.栈的介绍-C语言调用函数(一)_双层小牛堡的博客-CSDN博客 接着上面 函数调用的约定 在栈帧中 主要的是主调函数如何存入实参 让被调用函数能够访问 这种是通过函数见的调用规定来规范的 并且 调用规定还规范了 函数执行完后应该由主函数实现 清除参…

[测试猿课堂]小白怎么学测试?史上最全《软件测试》学习路线

熬夜3天,联合3位猿计划教育的总监级授课老师,整理了这份《软件测试小白学习路线》,全文接近6000字,请大家耐心看完! 对于很多想通过自学转行软件测试的同学,痛点并不是学习动力,而是找不到清晰…

Apache SeaTunnel 3 分钟入门指南

简介 新一代分布式超高性能云原生数据同步工具 - Apache SeaTunnel 已经在B站、腾讯云、字节等数百家公司使用。 SeaTunnel 是 Apache 软件基金会下的一个高性能开源大数据集成工具,为数据集成场景提供灵活易用、易扩展并支持千亿级数据集成的解决方案。SeaTunnel …

《计算机网络--自顶向下方法》第三章--运输层

3.1概述和运输层服务 运输层协议为运行再不同主机上的应用进程之间提供了逻辑通信(logic communication)功能 运输层协议是在端系统中而不是在路由器中实现的 3.1.1运输层和网络层的关系 运输层协议至工作在端系统中 在端系统中,运输层…

基于Mybatis使用MySql存储过程,实现数据统计功能

1、前言 作为一个工作了很多年的程序员来说,没有在实际工作中真正使用过存储过程,其实对存储过程本身有过了解和学习,在日常的学习中,也会看过一些存储过程的相关介绍,不过“纸上得来终是浅”,正好这次做统…

Linux 利用网络同步时间

yum -y install ntp ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ntpdate ntp1.aliyun.com 创建加入crontab echo "*/20 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/dev/null &" >> /var/spool/cron/rootntp常用服务器 中国国家授…

力扣sql中等篇练习(十三)

力扣sql中等篇练习(十三) 1 每位学生的最高成绩 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 #先找到最大的元素 然后分组即可,不用管某些字段(grade)是不是聚合字段 SELECT e1.student_id,min(e1.course_id) course_id,e1.grade FROM Enrollment…

setup.py方式打包自己的python代码并可以用pip install安装

setup.py方式打包自己的python代码并可以用pip install安装 所需文件及目录规范示例演示引用自己打的包 所需文件及目录规范 注意setup.py文件和MANIFEST.in文件需要放在和你需要打包的目录同一级下,例如我这里需要打包的就是webconsole文件夹(这里webc…

gl-opendrive插件(车俩3D仿真模拟自动驾驶)

简介 本插件基于免费opendrive开源插件、Threejs和Webgl三维技术、vue前端框架,blender开源建模工具等进行二次开发。该插件由本人独立开发以及负责,目前处于demo阶段,功能还需待完善,由于开发仓促代码还需优化。 因此&#xff…

35岁测试人,面临职场危机,打了一场漂亮的翻身仗...

“夜深知雪重,时闻折竹声”。雪折,一种在雪的载荷下,植物(多指树)的躯干或枝条被不断堆积的雪花压断的现象。我的刚刚经历了人生的第一次“雪折”。 我是一个有点聪明且勤奋好学的人,从考入省重点大学起&a…

Windows环境下C++ 安装OpenSSL库 源码编译及使用(VS2019)

参考文章https://blog.csdn.net/xray2/article/details/120497146 之所以多次一举自己写多一篇文章,主要是因为原文内容还是不够详细。而且我安装的时候碰到额外的问题。 1.首先确认一下自己的代码是Win32的还是Win64的,我操作系统是64的,忘…

java websocket实现聊天室 附源码

目录 1.Socket基础知识 2.socket代码实现 2.1 引入依赖 2.2 配置websocket 2.3 websocket的使用 2.4 webSocket服务端模块 2.5 前端代码 3.测试发送消息 4.websocket源码地址 1.Socket基础知识 Socket(套接字)用于描述IP地址和端口&#xff0c…

4年测试工作经验,跳槽之后面试20余家公司的总结

先说一下自己的个人情况,普通二本计算机专业毕业,懂python,会写脚本,会selenium,会性能,然而离职后到今天都没有收到一份offer!一直在待业中,从离职第一天就开始准备简历&#xff0c…

【Vue 基础】尚品汇项目-02-路由组件的搭建

项目路由说明: 前端的路由:Key-Value键值对 Key:URL(地址栏中的路径) Value:相应的路由组件 作用:设定访问路径,并将路径和组件映射起来(就是用于局部刷新页面&#xff0…

Vue+Openlayers+proj4实现坐标系转换

场景 Vue中使用Openlayers加载Geoserver发布的TileWMS: Vue中使用Openlayers加载Geoserver发布的TileWMS_霸道流氓气质的博客-CSDN博客 在上面的基础上实现不同坐标系坐标数据的转换。 Openlayers中默认的坐标系是EPSG:900913 EPSG:900913等效于EPSG:3857 可在…

kafka集群压测与优化

影响kafka集群性能的因数有多个,网络带宽、cpu、内存、磁盘读写速度、副本数、分区数、broker数量、内存缓存等因素都会影响kafka集群的性能 1.优化kafka集群配置 server.properties配置文件优化 num.network.threads4 num.io.threads4 socket.send.buffer.bytes…

提升供应链运营效率:企业如何规范化供应商关系?

在现代企业运营中,采购和供应链管理已成为至关重要的环节。企业尤其需要管理好自身供应商,才能够获得优质的原材料和零部件,并确保生产和销售的正常进行。本文将从供应商的筛选、双方合作的流程管理、团队建设等方面,为大家介绍如…

腾讯云COS+SpringBOot实现文件上传下载功能

文章目录 第一步:在.yml文件中配置对应秘钥内容第二步:完成COSConfig类编写第三步:编写Controller类Bug提示: 最近一直在做一个项目,需要支持视频,音频,图片的上传,前面介绍的都是把…

新一代边缘计算盒子,英码科技边缘计算盒子SY-E160

SY-E160 是英码科技推出的新一代智能工作站,内部集成了 4 核强悍处理器 A551.5 GHz,其内置的算力核拥有 16Tops 超强算力。SY-E160 工作站采用低功耗技术设计,支持 宽温度环境工作,可以灵活部署于各种 AI 场景中。 SY-E160 深元 A…