Redis数据类型与常用命令

文章目录

  • 前言
  • 一、Redis数据类型
    • 1. Redis数据类型简介
    • 2. Redis数据类型特点
  • 二、Redis常用命令
    • 1. 字符串string 操作命令
    • 2. 哈希hash 操作命令
    • 3. 列表list 操作命令
    • 4. 集合set操作命令
    • 5. 有序集合 sorted set 操作命令
    • 6. 通用命令
  • 总结


前言

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

一、Redis数据类型

1. Redis数据类型简介

  • Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型
  1. 字符串 string
  2. 哈希 hash
  3. 列表 list
  4. 集合 set
  5. 有序集合 sorted set

2. Redis数据类型特点

在这里插入图片描述

二、Redis常用命令

1. 字符串string 操作命令

1. Redis 中字符串类型常用命令如下

命令作用
SET key value设置指定 key 的值
GET key获取指定 key 的值
SETEX key seconds value设置指定 key 的值,并将 key 的过期时间设为 seconds 秒(典型应用 :验证码)
SETNX key value只有在 key 不存在时设置 key 的值(典型应用 :分布式锁)

2. 示例

  • 启动 windows 客户端 redis 服务
    在这里插入图片描述

在这里插入图片描述

更多命令可以参考Redis中文网: https://www.redis.net.cn

2. 哈希hash 操作命令

1. Redis hash 是一个string类型的 field和 value 的映射表,hash特别适合用于存储对象,常用命令如下

命令行作用
HSET key field value将哈希表 key 中的字段 field 的值设为 value
HGET key field获取存储在哈希表中指定字段的值
HDEL key field删除存储在哈希表中的指定字段
HKEYS key获取哈希表中所有字段
HVALS key获取哈希表中所有值
HGETALL key获取在哈希表中指定 key 的所有字段和值

在这里插入图片描述

2. 示例

在这里插入图片描述

3. 列表list 操作命令

  1. Redis 列表是简单的字符串列表,按照插入顺序排序,常用命令如下
命令行作用
LPUSH key value1 [value2]将一个或多个值插入到列表头部
LRANGE key start stop获取列表指定范围内的元素
RPOP key移除并获取列表最后一个元素
LLEN key获取列表长度
BRPoP key1 [key2] timeout移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

在这里插入图片描述

2. 示例

在这里插入图片描述

4. 集合set操作命令

1. Redis set 是string类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据,常用命令如下

命令行作用
SADD key member1[member2]向集合添加一个或多个成员
SMEMBERSkey 返回集合中的所有成员
SCARD key获取集合的成员数
SINTER key1 [key2]返回给定所有集合的交集
SUNIoN key1 [key2]返回所有给定集合的并集
SDIFF key1 [key2]返回给定所有集合的差集
SREM key member1 [member2]移除集合中一个或多个成员

在这里插入图片描述

2. 示例

在这里插入图片描述

5. 有序集合 sorted set 操作命令

  1. Redis sorted set 有序集合是 string 类型元素的集合,且不允许重复的成员。每个元素都会关联一个double类型的分数(score)。redis 正是通过分数来为集合中的成员进行从小到大排序。有序集合的成员是唯一的,但分数却可以重复。常用命令如下
命令行作用
ZADD key score1 member1 [score2 member2]向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZRANGE key start stop [WITHSCORES]通过索引区间返回有序集合中指定区间内的成员
ZINCRBY key increment member有序集合中对指定成员的分数加上增量 increment
ZREM key member[member …]移除有序集合中的一个或多个成员

2. 举例

在这里插入图片描述

6. 通用命令

1. 常用通用命令行如下

命令行作用
KEYS pattern查找所有符合给定模式(pattern)的 key
EXISTS key检查给定 key 是否存在
TYPE key返回 key 所储存的值的类型
TTL key返回给定 key 的剩余生存时间(TTL,time to live),以秒为单位
DEL key该命令用于在 key 存在是删除 key

2. 举例

在这里插入图片描述

总结

欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

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

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

相关文章

0基础学习VR全景平台篇 第62篇:基本功能-如何发布VR视频

戳我先了解“全景视频上传规范” 1、点击【上传】按钮,打开本地文件夹,上传符合要求的全景视频素材,可以选择单个或多个视频同时上传。 2、视频上传成功以后,需要处理一段时间,请耐心等待。 视频处理好以后&#xff0…

element-plus坑总结

reactive和ref对比 // 定义变量 import { reactive } from vue; const person reactive({name: "John",age: 25, });// 赋值修改 person.name "Tom"; person.age 26;// 使用变量 <div>{{ person.name }}</div> <button click"perso…

java用 postman输入 数字 会加上单引号 和逗号,方便查询

java用 postman输入 数字 会加上单引号 和逗号&#xff0c;方便查询 /*** 输入12575726* 891006* 12575726* 891006* 返回* 12575726,* 891006,* 12575726,* 891006* 方便查询数据* param data* return*/RequestMapping(value "l…

MySQL八股学习记录5MySQL锁from小林coding

MySQL八股学习记录5MySQL锁from小林coding 锁的总览全局锁表级锁表锁元数据锁意向锁AUTO-INC锁 行级锁Record LockGap LockNext-Key-Lock插入意向锁行级锁是如何作用的唯一索引等值查询 唯一索引范围查询非唯一索引等值查询 锁的总览 MySQL锁分为三种,分别是全局锁,表级锁,行级…

从零开始学习 Java:简单易懂的入门指南(一)

Java基础语法 1. 人机交互1.1 什么是cmd&#xff1f;1.2 如何打开CMD窗口&#xff1f;1.3 常用CMD命令1.4 CMD练习1.5 环境变量 2. Java概述1.1 Java是什么&#xff1f;1.2下载和安装1.2.1 下载1.2.2 安装1.2.3 JDK的安装目录介绍 1.3 HelloWorld小案例1.3.1 Java程序开发运行…

RK3588+FPGA视频实时处理与双屏显示、存储解决方案

主板平台的主要功能电路示意图 在ARM端: 脚踏开关是电平输入10 口&#xff0c;双路。 触摸面板与主板的连接方式为 UART 外加12V 电源。 键盘为自开发产品&#xff0c;通过USB透传 UART&#xff0c;并传递12V电源USB、千兆网络为主板上的接口&#xff0c;USB 为3.0版本host 接口…

【iOS】编译与链接

前言 计算机语言分为机器语言、汇编语言和高级语言。 可以将高级语言分为两种&#xff1a;编译语言和解释型语言&#xff08;直译式语言&#xff09;。 解释型语言&#xff08;逐步进行解释执行&#xff09; 解释语言编写的程序在每次运行时都需要通过解释器对程序进行动态…

23.AOP

AOP AOP&#xff08;Aspect Oriented Programming&#xff09;是一种设计思想&#xff0c;是软件设计领域中的面向切面编程&#xff0c;它是面向对象编程的一种补充和完善&#xff0c;它以通过预编译方式和运行期动态代理方式实现在不修改源代码的情况下给程序动态统一添加额外…

postgresql导入导出数据库的一些问题

新建一个数据库 别忘了添加空间数据的扩展 备份之前的数据库 注意一定要自定义表&#xff0c;去掉 spatial_ref_sys &#xff0c;要不然需要先drop在创建&#xff0c;可能会报错。 一般不会去导函数&#xff0c;如果有个别自己创建的函数可以手动复制一下&#xff0c;全部导的话…

音视频技术开发周刊 | 302

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 ChatGPT神器Code Interpreter终于开放&#xff0c;到底怎么用&#xff1f;这里有一份保姆级教程 Code Interpreter 已经正式开放。 上海世界AI大会&#xff1a;MidJourney…

加水印用什么软件你知道吗?告诉你加水印的app哪个好用吧

笑笑是一个热爱生活的女孩&#xff0c;她经常会随手拍下生活的瞬间&#xff0c;并且在社交媒体上分享自己的开心时刻。然而&#xff0c;最近她发现自己的照片被未经授权地使用在其他网站和博客上。这让她感到非常生气。为了保护自己的作品权益&#xff0c;她决定寻找一个好用的…

Qt6 Qt Quick UI Prototype学习QML第一篇

Qt6 Qt Quick UI原型学习QML第一篇 开始创建项目Qt Quick UI原型简介.qmlproject文件举例Window平台小例子运行效果QML语法 了解语法 开始创建项目 创建一个具有QML入口点的Qt Quick 2 UI项目。要使用它&#xff0c;您需要设置一个QML运行时环境&#xff0c;例如gmlscene。 仅当…