Redis通用命令和key的层级结构

news2024/10/7 20:30:28

目录

1 Redis数据结构介绍

2 Redis 通用命令

3 Redis命令-Key的层级结构

1 Redis数据结构介绍

Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:

value的数据类型共有8种,前面5中为基本数据类型,后面3种是针对不同的情况指定的特殊数据类型。

命令不要死记,学会查询就好啦

Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网( Commands | Redis)可以查看到不同的命令:(点击COMMANDS)

当然我们也可以通过Help命令来帮助我们去查看命令

2 Redis 通用命令

通用指令是部分数据类型的,都可以使用的指令,常见的有:

  • KEYS:查看符合模板的所有key

  • DEL:删除一个指定的key

  • EXISTS:判断key是否存在

  • EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除

  • TTL:查看一个KEY的剩余有效期

通过help [command] 可以查看一个命令的具体用法,例如:  

 接下来演示上述常用命令的使用:

温馨提示:以下的内容所有的代码块都是从命令行窗口复制过来的,包括命令和结果哦~

1.KEYS:查看符合模板的所有key

127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379>

# 查询以a开头的key
127.0.0.1:6379> keys a*
1) "age"
127.0.0.1:6379>

贴心小提示:在生产环境下,不推荐使用keys 命令,因为这个命令在key过多的情况下,效率不高

2.DEL:删除一个指定的key

127.0.0.1:6379> help del

  DEL key [key ...]
  summary: Delete a key
  since: 1.0.0
  group: generic

127.0.0.1:6379> del name #删除单个
(integer) 1  #成功删除1个

127.0.0.1:6379> keys *
1) "age"

127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3 #批量添加数据
OK

127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
4) "age"

127.0.0.1:6379> del k1 k2 k3 k4
(integer) 3   #此处返回的是成功删除的key,由于redis中只有k1,k2,k3 所以只成功删除3个,最终返回
127.0.0.1:6379>

127.0.0.1:6379> keys * #再查询全部的key
1) "age"	#只剩下一个了
127.0.0.1:6379>

贴心小提示:在拷贝代码的时候,只需要拷贝对应的命令哦~

3.EXISTS:判断key是否存在

127.0.0.1:6379> help EXISTS

  EXISTS key [key ...]
  summary: Determine if a key exists
  since: 1.0.0
  group: generic

127.0.0.1:6379> exists age
(integer) 1

127.0.0.1:6379> exists name
(integer) 0

4.EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除

5.TTL:查看一个KEY的剩余的存活时间

127.0.0.1:6379> expire age 10
(integer) 1

127.0.0.1:6379> ttl age
(integer) 8

127.0.0.1:6379> ttl age
(integer) 6

127.0.0.1:6379> ttl age
(integer) -2

127.0.0.1:6379> ttl age
(integer) -2  #当这个key过期了,那么此时查询出来就是-2 

127.0.0.1:6379> keys *
(empty list or set)

127.0.0.1:6379> set age 10 #如果没有设置过期时间
OK

127.0.0.1:6379> ttl age
(integer) -1  # ttl的返回值就是-1

贴心小提示

(1)内存非常宝贵,对于一些数据,我们应当给他一些过期时间,当过期时间到了之后,他就会自动被删除~

(2)当使用TTL命令时,如果返回 -1 值,不是代表已经被销毁,而是代表永久哦~

3 Redis命令-Key的层级结构

Redis没有类似MySQL中的Table的概念,我们该如何区分不同类型的key呢?

例如,需要存储用户.商品信息到redis,有一个用户id是1,有一个商品id恰好也是1,此时如果使用id作为key,那就会冲突了,该怎么办?

我们可以通过给key添加前缀加以区分,不过这个前缀不是随便加的,有一定的规范:

Redis的key允许有多个单词形成层级结构,多个单词之间用':'隔开,格式如下:

这个格式并非固定,也可以根据自己的需求来删除或添加词条。

这个格式并非固定,也可以根据自己的需求来删除或添加词条。

例如我们的项目名称叫 heima,有user和product两种不同类型的数据,我们可以这样定义key:

  • user相关的key:heima:user:1

  • product相关的key:heima:product:1

如果Value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后存储:  

KEYVALUE
heima:user:1{"id":1, "name": "Jack", "age": 21}
heima:product:1{"id":1, "name": "小米11", "price": 4999}

​​​​​​​

一旦我们向redis采用这样的方式存储,那么在可视化界面中,redis会以层级结构来进行存储,形成类似于这样的结构,更加方便Redis获取数据

 

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

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

相关文章

5000立方米球罐设计

目 录 摘 要 I Abstract II 1 文献综述 1 1.1 课题研究的工程背景及理论、实际意义 1 1.2 球罐用钢 1 1.2.1 球罐用钢基本要求分析 1 1.2.2 国内外球罐的常用钢种 2 1.2.3 几种典型球罐用钢的优劣对比 2 1.3 球罐设计 3 1.3.1 球罐设计的执行标准及法规 3 1.3.2 球壳结构 4 1.3…

通过PLC网关如何实现三菱FX3U的远程上下载程序?

FX3U是三菱推出的高性能PLC品牌。基本性能大幅提升,晶体管输出型的基本单元内置了3轴独立最高100kHz的定位功能,并且增加了新的定位指令,从而使得定位控制功能更加强大,使用更为方便,受到企业的青睐。因此,…

PyQt5 QLabel标签

PyQt5 QLabel标签标签显示标签快捷键功能标签显示 QLabel背景色设置: palette QPalette() # 创建调色板 palette.setColor(QPalette.Window, Qt.green) # 设置调色板属性 label.setPalette(palette) # 标签设置Palette label.setAutoFillBackground(True) # 设为T…

【安全测试学习】数据库基础

以上来自学习极客时间《Web 安全攻防实战》课程内容,汇总整理思维导图。

记录多次安装mysql失败问题

首先说明一下,本人电脑已经安装过mysql,不过想从5.7版本升级到8.0 首先是卸载电脑上的mysql5.7版本,卸载过程如下: 进入控制面板,直接卸载所有mysql相关进入安装目录下删除mysql相关文件夹,通常在C:\Prog…

”互联网行业还在等金三银四或是金九银十?“,我劝你还是早做打算

对于今年的IT行业来说,可能真的根本没有所谓的“金三银四”或是“金九银十”。各大招聘网站或者软件上不管是大厂还是中小公司看似挂个招聘需求,但实际上这些公司并不非常缺人也不急着招人;我想今年程序员听的最多的一个词就是”互联网寒冬“…

二十九、Java 数据结构

Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration)位集合(BitSet)向量(Vector)栈(Stack)字典&#xff…

谈谈制定数据治理战略路线图的方法

对于商业世界最具前瞻性思维能力的发展来说,如数据分析、机器学习和人工智能,高质量的数据是一个关键的成功因素。因此,当涉及到数字化转型时,数据发挥着至关重要的作用。 然而,如果没有适当的数据治理,组织最终可能会构建腐败的模型,做出低效的决策,甚至违反法律。商…

C++11 thread

目录 线程thread 主要成员函数 简单线程的创建 线程封装 zero_thread.h zero_thread.cpp main.cpp C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 线程thread std::thread 在 #include 头文件中声明,因此使用 std::thread 时需要包含…

Android Surface 是如何跨进程传递的?

Android Surface 跨进程传递原理?SurfaceActivity 的 Surface 是怎么跨进程传递的问题Surface public class Surface implements Parcelable {// ....long mNativeObject;private final Canvas mCanvas new CompatibleCanvas();// .... }首先,Surface …

思科模拟器的远程连接交换机的实现

这里写目录标题思科模拟器的远程连接交换机的实现方式一 :反转线1.使用蓝色的线2.在pc0 上面找到超级终端 这时候就可以看到一些终端数 就说明连接进去了方式二:交换机配置终端 进行终端tennet连接1.设置命令终端的进入密码2.配置终端的连接密码3.给交换机添加ip3.方式3: web连…

Spring Boot

Spring Boot (https://baike.baidu.com/item/Spring%20Boot?fromModulelemma_search-box) 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。 人们把 Spring Boot 称为搭建程序的脚手架。其最主要作用就是帮我们快速的…

IPWorks Delphi版自定义服务器解决方案

IPWorks Delphi版自定义服务器解决方案 IPWorks是一个用于Internet开发的综合框架,它消除了Internet开发的复杂性,提供了可编程的、支持SSL的组件,以便于执行诸如确保安全、发送电子邮件、传输文件、管理网络、浏览Web、使用Web服务等任务。 …

pybind11使用总结(依赖python3.7版本)

先安装python3.7的源码;test_py.py调用test_cpp中导出函数add()及python三方库: import os import pandas as pd import numpy as np import libtest as coredef test(a):print(pd.__version__)print(np.__version__)print(core.add(1,2))test_cpp.cpp导…

Study Git - Data Model

前言 本文章主要记录学习git底层原理时的一些知识点 文章参考 MIT missing classHow to explain git in simple words?The anatomy of a Git commitPro Git Git的数据模型 blob: 压缩并保存所有文件内容的数据结构 blob array<byte>tree: 存储目录的结构&#xff0c…

Cholesterol艾美捷胆固醇基参方案

艾美捷Cholesterol胆固醇以固体形式提供。可以通过将胆固醇溶解在所选择的溶剂中来制备储备溶液&#xff0c;该溶剂应使用惰性气体吹扫。胆固醇以约30mg/ml的浓度溶于有机溶剂氯-仿中。 艾美捷Cholesterol胆固醇基本参数&#xff1a; Formal Name (3β)-cholest-5-en-3-ol C…

Element Tiptap Editor - 免费开源的 Vue 富文本编辑器,专门为搭配 Element UI 使用优化,使用很简单

一款很容易上手配置的富文本编辑器&#xff0c;和 Element plus 一起使用效果非常好&#xff0c;还能自定义功能。 关于 Element Tiptap Editor Element Tiptap Editor 是一个在 web 开发领域“所见即所得”的富文本编辑器&#xff0c;基于 tiptap 编辑器和 element-ui 开发&…

Android程序设计之音乐播放器实现

Android毕设音乐播放器实现 基于MediaPlayer技术实现在线音乐播放器&#xff0c;播放在线音乐&#xff0c;后端使用SpringBoot将音乐存放在Tomcat服务器。app通过网络请求获取音乐&#xff0c;从而实现在线音乐播放。该项目分为用户端和管理员端 一、核心技术Service组件介绍 …

远程教育:低代码重塑教育技术

新冠肺炎大流行对世界各地的行业产生了影响&#xff0c;其中一些行业的影响远远超过其他行业。食品、零售、供应链、娱乐和航空业是受影响最大的行业&#xff0c;为确保不间断运营&#xff0c;这引发了一场数字革命。相信&#xff0c;这种数字化的采用将长期保持下去&#xff0…

​电脑上的回收站怎么隐藏 ,怎么隐藏桌面回收站图标

回收站是电脑上不可分割的一部分&#xff0c;往往被放在电脑的桌面上&#xff0c;我们是不能够删除桌面上的回收站的&#xff0c;但是如果想要一个很干净的桌面&#xff0c;不想让回收站出现在电脑桌面上&#xff0c;​电脑上的回收站怎么隐藏&#xff1f; 通过本文&#xff0c…