1、Reids之基础

Reids之基础

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

类型例子
Stringhello world
Hash{name: “jack”, age: “20”}
List[A->B->C]
Set{A,B,C}
SortedSet{A: 1, B: 2, C: 3}
GEO{A: (120.3, 30.5)}
BitMap0110110101110101011
HyperLog0110110101110101011

1、通用命令

  • KEYS

KEYS: 查看所有符合模板的所有key,不建议使用

  • DEL

DEL: 删除一个或者多个指定的key

  • EXISTS

EXISTS:判断key是否存在

  • EXPIRE

EXPIRE:给一个key设置有效期,有效期到时该key会自动被删除 (-1为未设置有效期,-2为已过期)

  • TTL

TTL:查看一个key剩余有效期

2、String类型

String类型,也就是字符串类型,是redis中最简单的存储类型。string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。

String的value是字符串,不过个根据字符串的格式不同,又分为3类。

  • String: 普通字符串

  • int: 整数类型,可以自增、自减

  • float:浮点类型,可以自增、自减

这三种格式底层都是以字节数组形式存储,只是编码方式不同。

String 的常见命令有:

  • SET:添加或者修改已经存在的一个 String 类型的键值对
  • GET:根据 key 获取 String 类型的 value
  • MSET:批量添加多个 String 类型的键值对
  • MGET:根据多个 key 获取多个 String 类型的 value
  • INCR:让一个整型的 key 自增 1
  • INCRBY:让一个整型的 key 自增并指定步长,例如:incrby num 2 让 num 值自增 2
  • INCRBYFLOAT:让一个浮点类型的数字自增并指定步长
  • SETNX:添加一个 String 类型的键值对,前提是这个 key 不存在,否则不执行
  • SETEX:添加一个 String 类型的键值对,并且指定有效期

3、Hash类型

Hash 类型,也叫散列,其 value 是一个无序字典,类似于 Python 中的 Dict 结构。

KEYVALUE
user:1{name:“Jack”,age:21}
user:2{name:“Rose”,age:18}

Hash 结构可以将对象中的每个字段独立存储,可以针对单个字段做 CRUD。

Hash 的常见命令有:

  • HSET key field value:添加或者修改 hash 类型 key 的 field 的值
  • HGET key field:获取一个 hash 类型 key 的 field 的值
  • HMSET:批量添加多个 hash 类型 key 的 field 的值
  • HMGET:批量获取多个 hash 类型 key 的 field 的值
  • HGETALL:获取一个 hash 类型的 key 中的所有的 field 和 value
  • HKEYS:获取一个 hash 类型的 key 中的所有的 field
  • HVALS:获取一个 hash 类型的 key 中的所有的 value
  • HINCRBY:让一个 hash 类型的 key 的字段值自增并指定步长
  • HSETNX:添加一个 hash 类型的 key 的 field 值,前提是这个 field 不存在,否则不执行

4、List类型

Redis 中的 List 类型与 Python 中的List 类似,可以看做是一个双向链表结构,既可以支持正向检索,也可以支持反向检索。
特征:

  • 有序
  • 元素可以重复
  • 插入和删除快
  • 查询速度一般

List 的常见命令有:

LPUSH key element … :向列表左侧插入一个或多个元素
LPOP key:移除并返回列表左侧的第一个元素,没有则返回 nil
RPUSH key element … :向列表右侧插入一个或多个元素
RPOP key:移除并返回列表右侧的第一个元素
LRANGE key start end:返回一段角标范围内的所有元素
BLPOP 和 BRPOP:与 LPOP 和 RPOP 类似,只不过在没有元素时等待指定时间,而不是直接返回 nil

5、Set类型

Redis 的 Set 结构与Python中的 Set 类似。

特征:

  • 无序
  • 元素不可重复
  • 查找快
  • 支持交集、并集、差集等功能

Set 常见命令:

  • SADD key member … :向 set 中添加一个或多个元素

  • SREM key member … :移除 set 中的指定元素

  • SCARD key … :返回 set 中元素的个数

  • SISMEMBER key member:判断一个元素是否存在于 set 中

  • SMEMBERS:获取 set 中的所有元素

  • SINTER key1 key2 … :求 key1 与 key2 的交集

  • SDIFF key1 key2 … :求 key1 与 key2 的差集

  • SUNION key1 key2 … :求 key1 与 key2 的并集

6、SortSet类型

Redis 的 SortedSet 是一个可排序的 set 集合。

特性:

  • 可排序
  • 元素不重复
  • 查询速度快

因为 SortedSet 的可排序特性,经常被用来实现排行榜这样的功能。

SortedSet 类型的常见命令有:

  • ZADD key score member:添加一个或多个元素到 SortedSet,如果已经存在则更新其 score 值

  • ZREM key member:删除 SortedSet 中的一个指定元素

  • ZSCORE key member:获取 SortedSet 中的指定元素的 score 值

  • ZRANK key member:获取 SortedSet 中的指定元素的排名

  • ZCARD key:获取 SortedSet 中的元素个数

  • ZCOUNT key min max:统计 score 值在给定范围内的所有元素的个数

  • ZINCRBY key increment member:让 SortedSet 中的指定元素自增,步长为指定的 increment 值

  • ZRANGE key min max:按照 score 排序后,获取指定排名范围内的元素

  • ZRANGEBYSCORE key min max:按照 score 排序后,获取指定 score 范围内的元素

  • ZDIFF、ZINTER、ZUNION:求差集、交集、并集

注:所有的排名默认都是升序,如果要降序则在命令的 Z 后面添加 REV 即可。

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

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

相关文章

格式化代码 | 美化JSON、SQL

一、格式化JSON数据 打开Postman,将json数据粘到里面,点击Beautify即可美化代码。 二、格式化SQL 打开Navicat,新建查询,将sql粘进去点击”美化sql“即可。 三、浏览器 在线格式化 使用浏览器上的在线格式化网址。例如&…

使用ChatGPT写论文,只需四步突破论文写作瓶颈!

欢迎关注,为大家带来最酷最有效的智能AI学术科研写作攻略。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流 地表最强大的高级学术AI专业版已经开放,拥有全球领先的GPT学术科研应用,有兴趣的朋友可…

滑动窗口(C++)

文章目录 1、长度最小的子数组2、无重复字符的最长子串3、最大连续1的个数 Ⅲ4、将x减到0的最小操作数5、水果成篮6、找到字符串中所有字母异位词7、串联所有单词的子串8、最小覆盖子串 通常,算法的主体说明会放在第一道题中。但实际上,不通常。 算法在代…

gradle构建工具

setting.gradle // settings.gradle rootProject.name my-project // 指定根项目名称include subproject1, subproject2 // 指定子项目名称,可选jar包名称 方式一 jar {archiveBaseName my-application // 设置 JAR 文件的基本名称archiveVersion 1.0 // 设置…

重载赋值运算符

c编译器可能会给类添加四个函数 1默认构造函数 2默认析构函数 3默认拷贝构造函数&#xff0c;对成员变量进行浅拷贝。 4默认赋值函数&#xff0c;队成员变量进行浅拷贝。 #include<iostream> using namespace std; class CGirl { public:int m_bh;string m_name;voi…

【VUE基础】VUE3第三节—核心语法之computed、watch、watcheffect

computed 接受一个 getter 函数&#xff0c;返回一个只读的响应式 ref 对象。该 ref 通过 .value 暴露 getter 函数的返回值。它也可以接受一个带有 get 和 set 函数的对象来创建一个可写的 ref 对象。 创建一个只读的计算属性 ref&#xff1a; <template><div cl…

3033.力扣每日一题7/5 Java

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 思路 解题方法 时间复杂度 空间复杂度 Code 思路 首先创建一个与…

【C++】unordered系列容器的封装

你很自由 充满了无限可能 这是很棒的事 我衷心祈祷你可以相信自己 无悔地燃烧自己的人生 -- 东野圭吾 《解忧杂货店》 unordered系列的封装 1 unordered_map 和 unordered_set2 改造哈希桶2.1 模版参数2.2 加入迭代器 3 上层封装3.1 unordered_set3.2 unordered_map 4 面…

基于springboot的工作绩效管理系统的设计与实现+文档

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

零基础学习MySQL---库的相关操作

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、创建数据库 1.语法 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] .…

Android 简单快速实现 下弧形刻度尺(滑动事件)

效果图&#xff1a; 直接上代码&#xff1a; package com.my.view;import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Pai…

WordPress付费进群V2主题,多种引流方法,引私域二次变现

全新前端UI界面&#xff0c;多种前端交互特效让页面不再单调&#xff0c;进群页面群成员数&#xff0c;群成员头像名称&#xff0c;每次刷新页面随机更新不重复&#xff0c;最下面评论和点赞也是如此随机刷新不重复 进群页面简介&#xff0c;群聊名称&#xff0c;群内展示&…

UML2.0-系统架构师(二十四)

1、&#xff08;重点&#xff09;系统&#xff08;&#xff09;在规定时间内和规定条件下能有效实现规定功能的能力。它不仅取决于规定的使用条件等因素&#xff0c;还与设计技术有关。 A可靠性 B可用性 C可测试性 D可理解性 解析&#xff1a; 可靠性&#xff1a;规定时间…

ServiceImpl中的参数封装为Map到Mapper.java中查询

ServiceImpl中的参数封装为Map到Mapper.java中查询&#xff0c;可以直接从map中获取到key对应的value

论文阅读【时间序列】DSformer

论文阅读【时间序列】DSformer arxive: DSformer: A Double Sampling Transformer for Multivariate Time Series Long-term Prediction github: MTST 分类&#xff1a;多变量时间序列&#xff08;Multivariate time series&#xff09; 核心观点 多变量时间序列3个维度信息 …

Android AlertDialog对话框

目录 AlertDialog对话框普通对话框单选框多选框自定义框 AlertDialog对话框 部分节选自博主编《Android应用开发项目式教程》&#xff08;机械工业出版社&#xff09;2024.6 在Android中&#xff0c;AlertDialog弹出对话框用于显示一些重要信息或者需要用户交互的内容。 弹出…

【Linux进阶】磁盘分区2——MBR和GPT

1.磁盘的分区 因为如果你的磁盘被划分成两个分区&#xff0c;那么每个分区的设备文件名是什么&#xff1f; 在了解这个问题之前&#xff0c;我们先来复习一下磁盘的组成&#xff0c;因为现今磁盘的划分与它物理的组成很有关系。 我们谈过磁盘主要由碟片、机械手臂、磁头与主轴马…

gda动态调试-cnblog

忽的发现gda有动态调试功能 动态监听返回值 框柱指定方法&#xff0c;选择调试方法&#xff0c;gda会自动监听函数的返回值&#xff0c;例如 自定义frida脚本 gda会自动生成hook该函数的frida脚本

window.ai 开启你的内置AI之旅

❝ 成功是得你所想&#xff0c;幸福是享你所得 大家好&#xff0c;我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder ❝ 此篇文章所涉及到的技术有 AI( Gemini Nano) Chrome Ollama 因为&#xff0c;行文字数所限&#xff0c;有些概念可能会一带而过亦或者提供…

顶顶通呼叫中心中间件-外呼通道变量同步到坐席通道变量(mod_cti基于Freeswitch)

机器人伴随转人工或者排队转人工 把外呼通道同步到坐席通道变量 在拨号方案转人工动作cti_acd,或者转机器人动作cti_rotobt的前面&#xff0c;添加一个 export nolocal:变量名${变量名} 一、配置拨号方案 win-ccadmin配置方法 点击拨号方案 -> 点击进入排队 -> 根据图…