Redis笔记

Redis(Remote  Dictionary  Server)是一种非关系型数据库

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis 中有五种基本数据类型:

String(字符串)

  • String(字符串) 最简单的类型,可以包含任意的数据,比如整数、浮点数、JSON 字符串等。

  •  string 是 redis 最基本的类型,string 类型的值最大能存储 512MB, 一个 key 对应一个 value

  Redis 的 SETGET 命令

添加

set+ 键名+ 值

获取

get +键名

删除

del +键名

List(列表)

  • List(列表):有序的字符串集合,可以重复添加元素,支持头部和尾部的插入、删除等操作。列表最多可存储 232 - 1 元素

列表相关的基本命令:

向列表添加元素

lpush 键名 值

lrange  键名 起始位置 结束位置
lrange list 0 10

 

 

LINDEX  key  index
通过索引获取列表中的元素

 

 Set(集合)

  • Set(集合):无序的字符串集合,不允许重复元素,支持集合间的交集、并集、差集等操作。

  • 集合对象的编码可以是 intset 或者 hashtable。

  • Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
  • 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)
向集合添加一个或多个成员

sadd +键名 +值1

sadd +键名 +值1 +值2

查询集合中的所有成员

smembers +键名

获取集合的成员数

scard +键名

Hash(哈希)

  • Hash(哈希):类似于 Java 中的 Map,包含键值对的集合,每个键值对都是一个字符串。
  •  Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
将多个 field-value (域-值)对设置到哈希表 key 中。

语法如下:

HMSET key field1 value1 field2 value2 field3 value3 ...

HMSET my_hash

HMSET的全称是"Hash Multi Set"。

获取哈希表中所有值。
  1. 使用HVALS命令获取哈希表中的所有值。语法如下:

    HVALS key

    其中,key是哈希表的名称。

  2. 例如,如果要获取名为my_hash的哈希表中的所有值,可以执行以下命令:

    HVALS my_hash

 删除一个或多个哈希表字段
查看哈希表 key 中,指定的字段是否存在。

获取存储在哈希表中指定字段的值。

获取在哈希表中指定 key 的所有字段和值

# 获取哈希表中所有字段和值
HGETALL my_hash

# 将返回结果存储在一个临时的无序集合中(Set),这将自动去除重复的元素
SADD tmp_set "two" "three" "four" "field1"

# 获取无序集合中的所有成员(即去重后的结果)
SMEMBERS tmp_set

# 删除临时集合
DEL tmp_set

在这个示例中,我们通过SADD命令将返回结果中的所有字段名(包括重复的)存储在一个临时的无序集合中,Redis会自动去除重复的元素。然后使用SMEMBERS命令来获取无序集合中的所有成员,即去重后的结果。最后,使用DEL命令删除临时集合。


Sorted Set(有序集合)

  • Sorted Set(有序集合):与 Set 类似,但是每个元素都有一个分数(score),根据分数进行排序。

  • 有序集合的成员是唯一的,但分数(score)却可以重复。
  • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 集合中最大的成员数为 232 - 1
向有序集合添加一个或多个成员,或者更新已存在成员的分数

ZADD key score1 member1 [score2 member2]

获取有序集合(Sorted Set)中成员的数量

ZCARD key

计算有序集合(Sorted Set)中分数在给定范围内的成员数量

 

ZCOUNT key min max

在有序集合中对指定成员的分数加上增量(increment)

ZINCRBY my_sorted_set 5 member1

ZSCORE  key  member
返回有序集中,成员的分数值

Redis 有九种数据编码方式:

  1. int:整数编码。
  2. embstr:短字符串编码。
  3. raw:长字符串编码。
  4. hashtable:哈希表编码。
  5. ziplist:压缩列表编码。
  6. skiplist:跳跃表编码。
  7. intset:整数集合编码。
  8. quicklist:快速列表编码。
  9. stream:流数据编码。

Redis 有七种底层结构:

  1. 字符串对象(String Object):保存字符串值和字符串类型的键。
  2. 列表对象(List Object):保存链表、双端链表和快速链表。
  3. 哈希对象(Hash Object):保存键值对。
  4. 集合对象(Set Object):保存无序字符串集合。
  5. 有序集合对象(Sorted Set Object):保存有序字符串集合。
  6. 整数集合对象(Intset Object):保存整数集合。
  7. 跳跃表对象(Skiplist Object):保存有序字符串集合的跳跃表。

Redis 命令

redis启动命令
 

redis-cli

ping命令(查看服务是否运行)

表示成功

如果ping 发生如下情况

错误信息 "NOAUTH Authentication required." 表示Redis服务器要求进行身份验证,但连接没有提供正确的认证信息。

要解决这个问题,你需要提供正确的认证信息才能连接到Redis服务器。通常情况下,你可以在连接Redis时使用 AUTH 命令提供密码进行身份验证。

例如,如果你的Redis服务器设置了密码为 "your_password",你可以这样连接:

AUTH your_password 

确保在连接之前先进行身份验证,这样你就可以成功连接到Redis服务器并执行相应的命令了。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# Winform .net6自绘的圆形进度条

using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms;namespace Net6_GeneralUiWinFrm {public class CircularProgressBar : Control{private int progress 0;private int borderWidth 20; // 增加的边框宽度public int Progr…

Qt:槽函数的五种写法

一、Qt4写法(不推荐) connect(ui.btnOpen,SIGNAL(clicked),this,SLOT( open() ) );因为是以宏定义的方式展开,所以如果SIGNAL写错,或者信号名字、槽函数写错、编译器是无法检验出来的,导致出现隐性BUG,不容…

SpringBoot+Vue3 完成小红书项目

简介 该项目采用微服务架构,实现了前后端分离的系统设计。在前端,我们选择了 Vue3 配合 TypeScript 和 ElementUi 框架,以提升开发效率和用户体验。而在后端,则是运用 SpringBoot 和 Mybatis-plus 进行开发,保证了系统…

JVM(2)实战篇

1 内存调优 1.1 内存溢出和内存泄漏 内存泄漏(memory leak):在Java中如果不再使用一个对象,但是该对象依然在GC ROOT的引用链上,这个对象就不会被垃圾回收器回收,这种情况就称之为内存泄漏。 内存泄漏绝…

从汇编角度解释线程间互斥-mutex互斥锁与lock_guard的使用

多线程并发的竞态问题 我们创建三个线程同时进行购票&#xff0c;代码如下 #include<iostream> #include<thread> #include<list> using namespace std; //总票数 int ticketCount100; //售票线程 void sellTicket(int idx) {while(ticketCount>0){cou…

Pycharm里如何设置多Python文件并行运行

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夕阳何事近黄昏&#xff0c;不道人间犹有未招魂。 大家好&#xff0c;我是皮皮。 一、前言 相信使用Pycharm的粉丝们肯定有和我一样的想法&#xff0c;…

Matplotlib自定义辅助函数 (一):让你的图表大放异彩!

Matplotlib美化秘诀&#xff1a;自定义辅助函数&#xff0c;让你的图表大放异彩&#xff01; 利用Matplotlib进行数据可视化示例 &#x1f335;文章目录&#x1f335; &#x1f333;一、创建自定义样式函数&#x1f333;&#x1f333;二、创建自定义颜色映射&#x1f333;&…

预处理详解(下)

1.#运算符 #运算符将宏的一个参数转换为字符串字面量。它仅允许出现在带参数的宏的替换列表中。 #运算符所执行的操作可以理解为”字符串化“。 例如&#xff1a; 我们将打印的字符串中的n改为参数n,这样在传参的时候就也会随着变化。假如我们不将其改为参数n的话会发生什么呢…

黑马Java——异常、File、综合案例

一、异常 误区&#xff1a;不是让我们以后不出异常&#xff0c;而是出现异常了之后&#xff0c;如何去处理 1、异常的分类 1.1、Error 1.2、Exception 1.3、小结 2、编译时异常和运行时异常 2.1、编译时异常 2.2、运行时异常 2.3、为什么异常要分成编译时异常和运行时异常&…

随机过程及应用学习笔记(三)几种重要的随机过程

介绍独立过程和独立增量过程。重点介绍两种独立增量过程-—维纳过程和泊松过程。 目录 前言 一、独立过程和独立增量过程 1、独立过程&#xff08;Independent Process&#xff09; 2、独立增量过程&#xff08;Independent Increment Process&#xff09; 二、正态过程&am…

【c++】构造函数(上)

Hello everybody!今天我们来聊一聊构造函数的用法和一些基本性质。内容比较多&#xff0c;我打算分两篇文章讲完&#xff01; 希望大家在看完我的文章后能够有所收获&#xff01; 1.构造函数的定义 构造函数是特殊的成员函数&#xff0c;需要注意的是&#xff0c;构造函数虽然…

Editable Scene Simulation for Autonomous Driving via Collaborative LLM-Agents

ChatSim&#xff1a;首个通过大语言模型实现可编辑逼真3D驾驶场景的仿真 论文链接&#xff1a;https://arxiv.org/pdf/2402.05746.pdf 代码链接&#xff1a;https://github.com/yifanlu0227/ChatSim 1. 摘要&#xff08;Abstract&#xff09; 自动驾驶中的场景仿真因其生成定制…

【前端高频面试题--git篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;前端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 前端高频面试题--git篇 常用命令git add 和 git stage 有什么区别怎么使用git连接到远程仓库git…

.target勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复

导言&#xff1a; 网络安全威胁如勒索病毒已经成为企业和个人数据安全的重大挑战之一。.target勒索病毒作为其中的一种&#xff0c;以其高度复杂的加密算法和迅速变化的攻击手法备受关注。本文将深入介绍.target勒索病毒的特点&#xff0c;探讨如何有效地恢复被加密的数据文件…

【复现】某某ERP 信息泄露漏洞_49

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 该ERP基于SpringBoot框架和SaaS模式&#xff0c;立志为中小企业提供开源好用的ERP软件&#xff0c;目前专注进销存财务生产功能。…

模拟电子技术——基本放大电路

文章目录 前言一、三极管输入输出特性三极管放大作用三极管电流放大关系三极管的特性曲线 二、基本放大电路-电路结构与工作原理基本放大电路的构成基本放大电路放大原理三种基本放大电路比较 三、基本放大电路静态工作点什么是静态工作点&#xff1f;静态工作点的作用估算法分…

耳机壳UV树脂制作私模定制耳塞需要什么样的设备和技术?

制作私模定制耳塞需要使用到一些特定的设备和技术&#xff0c;包括但不限于以下内容&#xff1a; 耳模制作工具&#xff1a;用于获取用户耳型的耳模制作工具&#xff0c;如硅胶、橡皮泥等。需要使用熟练的手法和技术&#xff0c;确保耳模的准确性和稳定性。UV树脂&#xff1a;…

ARP请求的构造过程

ARP请求的构造过程&#xff1a; ARP请求的构造&#xff1a; 当设备A&#xff08;发起者&#xff09;想要与设备B&#xff08;目标&#xff09;通信&#xff0c;但它只知道设备B的IP地址&#xff08;例如&#xff0c;192.168.1.2&#xff09;&#xff0c;而不知道其MAC地址。设备…

Python数据科学:Scikit-Learn机器学习

4.1Scikit-Learn机器学习 Scikit-Learn使用的数据表示&#xff1a;二维网格数据表 实例1&#xff1a;通过Seaborn导入数据 def skLearn():scikit Learn基本介绍:return:import seaborn as sns#导入Iris数据集#注&#xff1a;一般网络访问不了iris sns.load_dataset(iris)ir…

Linux中alarm/setitimer函数(信号函数)

alarm函数 函数原型&#xff1a; unsigned int alarm(unsigned int seconds); 函数描述&#xff1a;设置定时器&#xff08;闹钟&#xff09;。在指定seconds后&#xff0c;内核会给当前进程发送 14&#xff09;SIGALRM信号。进程收到该信号&#xff0c;默认动作终止。每个进程…