当前位置: 首页 > news >正文

redis基本用法学习(主要数据类型)

  redis官网教程中介绍有三种方式连接redis:命令行、gui工具和编程连接:
  命令行方式主要是在命令行中输入redis-cli后,通过命令方式与redis服务进行交互,支持两种模式:REPL模式(简单的交互式的编程环境)和命令模式(带参数执行redis-cli命令,返回标准输出内容);
  gui工具是指redis官网教程推荐使用RedisInsight软件可视化地与redis服务交互,RedisInsight软件为免费软件,可以浏览和操作数据,感觉类似其它数据库软件的客户端工具,使用起来比用命令行交互更直观;
  编程连接是指通过编程方式与redis服务交互,查询或操作数据,redis主要支持C#/.NET、Go、Java、Node.js、Python等编程语言,更详细的介绍见参考文献3。
  redis支持以键值对形式保存以下几种数据类型的数据:

序号中文名称英文名称说明主要命令
1字符串String保存字符串类型的键值对,键和值是一对一的字符串,支持设置、删除、修改、获取键值对,支持批量设置、获取键值对,支持设置键值对的过期时间SET、GET、SETEX、MSET、MGET
2列表List支持按类似队列的形式保存值,键值对中,键为字符串,而值为类似队列的字符串集合,支持增加、插入、删除列表元素LPUSH、LPOP、LTRIM、LRANGE、RPUSH、RPOP、LLEN
3集合Set键值对中,键为字符串,值为无序字符串集合,且值不能重复,支持集合之间求差、求合等操作SADD、SREM、SMEMBERS、SISMEMBER、SINTER、SCARD
4有序集合Sorted set键值对中,键为字符串,值中的每个元素都由字符串成员(members)及其关联的分数(score)构成,有序集合按成员的分数从大到小排序,支持查看排序结果及排名,同时支持查看反向排序结果及排名,除此支持,有序集合支持常见的集合求合、求差等操作。ZADD、ZCARD、ZRANGE、ZREVRANGE、ZRANK、ZREVRANK
5哈希Hash键值对中,键为字符串,值为键值对集合,值中的每个键都不能重复,有点像json中平级的属性值集合的意思,参考文献4中以人员信息为例,可以使用哈希保存人员的姓名、年龄、性别、身高 等信息HSET、HGET、HDEL、HEXISTS、HKEYS、HVALS、HLEN
6Stream键值对中,键为字符串,值中的每个元素都由唯一ID和一组键值对构成,可以用流几种接收和处理各方的消息,类似于生产者和消费者的形式,详细介绍见参考文献1和4XADD、XREAD、XRANGE、XLEN
7地理空间Geospatial主要存储和处理地理位置信息,键值对中,键为字符串,值中的每个元素都由经度、纬度、字符串成员(members)构成,支持计算成员与成员的距离,同时支持获取指定位置附近的所有成员列表,详细介绍见参考文献1和4GEOADD、GEOSEARCH、GEODIST
8位图Bitmap键值对中,键为字符串,值中的每个元素都由位置和一个0或1的值构成,可以用位图保存一组开关/灯/引脚的开闭状态,也可用于记录一组对象的有无状态,参考文献4中即以记录一组人的点赞状态为例说明位图的用法SETBIT、GETBIT、BITCOUNT
9位域Bitfield主要存储和处理数值型属性值,键值对中,键为字符串,值由SET/GET/INCRBY等命令开头的属性值信息,详细介绍即示例见参考文献4和6BITFIELD、BITFIELD_RO
10HLLHyperLogLog支持基数统计(详细介绍见参考文献5),键值对中,键为字符串,值为字符串集合,支持获取字符串集合中的基数,同时支持合并HyperLogLogPFADD、PFCOUNT、PFMERGE

  后续主要学习字符串类型的键值对基本用法,同时学习基于C#/.NET操作字符串类型的键值对基本用法。

参考文献:
[1]https://redis.io/
[2]https://redis.io/docs/install/install-redis/
[3]https://redis.io/docs/data-types/
[4]一小时Redis教程,https://www.bilibili.com/video/BV1Jj411D7oG/?spm_id_from=333.337.search-card.all.click&vd_source=db4a1f65c18549c78df3e9d579e59e19
[5]https://zhuanlan.zhihu.com/p/77289303
[6]https://redis.io/commands/bitfield/

相关文章:

redis基本用法学习(主要数据类型)

redis官网教程中介绍有三种方式连接redis:命令行、gui工具和编程连接:   命令行方式主要是在命令行中输入redis-cli后,通过命令方式与redis服务进行交互,支持两种模式:REPL模式(简单的交互式的编程环境&a…...

低代码:美味膳食或垃圾食品

低代码开发是近年来迅速崛起的软件开发方法,让编写应用程序变得更快、更简单。有人说它是美味的膳食,让开发过程高效而满足,但也有人质疑它是垃圾食品,缺乏定制性与深度。你认为低代码到底是美味的膳食还是垃圾食品呢,…...

设计模式—观察者模式

观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。 在观察者模式中,有两个核心角色&#xf…...

Java_EasyExcel_导入_导出Java-js

easyExcel导入 从easyexcel官网中拷贝过来&#xff0c;使用到的&#xff0c;这是使用监听器的方法。 EasyExcel.read(file.getInputStream(), BaseStoreDataExcelVo.class, new ReadListener<BaseStoreDataExcelVo>() {/*** 单次缓存的数据量*/public static final int…...

循环神经网络-RNN记忆能力实验 [HBU]

目录 一、循环神经网络 二、循环神经网络的记忆能力实验 三、数据集构建 数据集的构建函数 加载数据并进行数据划分 构造Dataset类 四、模型构建 嵌入层 SRN层 五、模型训练 训练指定长度的数字预测模型 多组训练 损失曲线展示 六、模型评价 参考《神经网络与深度…...

P1044 [NOIP2003 普及组] 栈——卡特兰数

传送门&#xff1a; P1044 [NOIP2003 普及组] 栈 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P1044 公式一&#xff1a;递推式(注意开 long long &#xff0c;然后 先乘完再除&#xff0c;防止下取整&#xff09; typedef long long ll;…...

9:00面试,9:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到12月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40…...

ets:tab2list的不足之处与替代方法,以及gen_server中使用ets的优缺点

ets:tab2list 是 Erlang/OTP 中的一个函数&#xff0c;用于将 ETS&#xff08;Erlang Term Storage&#xff09;表转换为列表。ETS 是 Erlang 中的一个内建数据库&#xff0c;允许开发者在内存中存储大量数据。 一、ets:tab2list 的不足之处&#xff1a; 性能问题&#xff1a;…...

软件测试之压力测试详解

一、什么是压力测试 软件测试中&#xff1a;压力测试&#xff08;Stress Test&#xff09;&#xff0c;也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷&#xff0c;长时间或超大负荷地运行测试软件&#xff0c;来测试被测系统的性能、…...

SpringBoot之请求的详细解析

1. 请求 在本章节呢&#xff0c;我们主要讲解&#xff0c;如何接收页面传递过来的请求数据。 1.1 Postman 之前我们课程中有提到当前最为主流的开发模式&#xff1a;前后端分离 在这种模式下&#xff0c;前端技术人员基于"接口文档"&#xff0c;开发前端程序&…...

mac 环境下 goframe安装GF开发工具 gf-cli(安装包方式安装)

mac 环境下 goframe安装GF开发工具 gf-cli&#xff08;安装包方式安装&#xff09; 安装包网址 链接: link 终端输入命令进行安装 ./gf_darwin_amd64 但是产生如下报错&#xff0c;无法安装 使用一下命令给安装权限 chmod 0777 gf_darwin_amd64 && ./gf_darwin_a…...

Navicat 技术指引 | 适用于 GaussDB 分布式的数据迁移工具

Navicat Premium&#xff08;16.3.3 Windows 版或以上&#xff09;正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结…...

【TiDB理论知识10】TiDB6.0新特性

新特性 Placement Rules in SQL 小表缓存 内存悲观锁 Top SQL TiDB Enterprise Manager 一 Placement Rules in SQL Placement Rules in SQL 之前会遇到的问题 比如 北京的业务需要访问 T2 和 T3表 &#xff0c;但是T3表的数据在纽约 纽约的业务需要问访T4 T5 T6表…...

MySQL笔记-第15章_存储过程与函数

视频链接&#xff1a;【MySQL数据库入门到大牛&#xff0c;mysql安装到优化&#xff0c;百科全书级&#xff0c;全网天花板】 文章目录 第15章_存储过程与函数1. 存储过程概述1.1 理解1.2 分类 2. 创建存储过程2.1 语法分析2.2 代码举例 3. 调用存储过程3.1 调用格式3.2 代码举…...

12月12日作业

设计一个闹钟 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimerEvent> #include <QTime> #include <QTime> #include <QTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass …...

基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(二)

目录 前言引言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理1&#xff09;数据介绍2&#xff09;数据测试3&#xff09;数据处理 相关其它博客工程源代码下载其它资料下载 前言 博主前段时间发布了一篇有关方言识别和分类模型训练的博客&#xff0c;在读者…...

​secrets --- 生成管理密码的安全随机数​

3.6 新版功能. 源代码: Lib/secrets.py secrets 模块用于生成高度加密的随机数&#xff0c;适于管理密码、账户验证、安全凭据及机密数据。 最好用 secrets 替代 random 模块的默认伪随机数生成器&#xff0c;该生成器适用于建模和模拟&#xff0c;不宜用于安全与加密。 参见…...

宇视科技视频监控 main-cgi 文件信息泄露漏洞

宇视科技视频监控 main-cgi 文件信息泄露漏洞 一、产品简介二、漏概述三、复现环境四、漏洞检测手工抓包自动化检测 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#…...

【数学建模】《实战数学建模:例题与讲解》第十一讲-因子分析、聚类与主成分(含Matlab代码)

【数学建模】《实战数学建模&#xff1a;例题与讲解》第十一讲-因子分析、聚类与主成分&#xff08;含Matlab代码&#xff09; 基本概念聚类分析Q型聚类分析R型聚类分析 主成分分析因子分析 习题10.11. 题目要求2.解题过程3.程序4.结果 习题10.21. 题目要求2.解题过程3.程序4.结…...

Python查找列表中不重复的数字

Python每日一练 文章目录 Python每日一练问题&#xff1a;函数输入函数输出 代码实现示例输入&#xff1a;示例输出&#xff1a; 总结 问题&#xff1a; 编写一个程序来查找列表中不重复的数字。 定义函数find_unique()&#xff0c;它接受一个列表作为参数。 在函数内部&…...

用docker创建jmeter容器,如何实现性能测试?

用 docker 创建 jmeter 容器, 实现性能测试 我们都知道&#xff0c;jmeter可以做接口测试&#xff0c;也可以用于性能测试&#xff0c;现在企业中性能测试也大多使用jmeter。docker是最近这些年流行起来的容器部署工具&#xff0c;可以创建一个容器&#xff0c;然后把项目放到…...

pytest-fixtured自动化测试详解

fixture的作用 1.同unittest的setup和teardown,作为测试前后的初始化设置。 fixture的使用 1.作为前置条件使用 2.fixture的的作用范围 1.作为前置条件使用 pytest.fixture() def a():return 3def test_b(a):assert a3 2.fixture的作用范围 首先实例化更高范围的fixture…...

计算机网络:应用层(一)

我最近开了几个专栏&#xff0c;诚信互三&#xff01; > |||《算法专栏》&#xff1a;&#xff1a;刷题教程来自网站《代码随想录》。||| > |||《C专栏》&#xff1a;&#xff1a;记录我学习C的经历&#xff0c;看完你一定会有收获。||| > |||《Linux专栏》&#xff1…...

mybatis的快速入门以及spring boot整合mybatis(二)

需要用到的SQL脚本&#xff1a; CREATE TABLE dept (id int unsigned PRIMARY KEY AUTO_INCREMENT COMMENT ID, 主键,name varchar(10) NOT NULL UNIQUE COMMENT 部门名称,create_time datetime DEFAULT NULL COMMENT 创建时间,update_time datetime DEFAULT NULL COMMENT 修改…...

lua基本语法使用

Lua 是一个小巧的脚本语言。Lua由标准C编写而成&#xff0c;几乎在所有操作系统和平台上都可以编译&#xff0c;运行。Lua并没有提供强大的库&#xff0c;这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。 1.基本语法 注解 -- 单行 -- [[ ]] -- 多行 …...

Git远程操作

目录 1.远程操作 1.1理解分布式版本控制系统 1.2远程仓库. 1.2.1新建远程仓库 1.2.2克隆远程仓库 1.2.3向远程仓库推送 1.2.4拉取远程仓库 1.3配置Git 1.3.1忽略特殊文件 1.3.2给命令配置别名 2.标签管理 2.1理解标签 2.2创建标签 2.3操作标签 1.远程操作 1.1理…...

链表基础知识(一、单链表)

一、链表表示和实现 顺序表的问题及思考 问题&#xff1a; 1. 中间/头部的插入删除&#xff0c;时间复杂度为O(N) 2. 增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会有不小的消耗。 3. 增容一般是呈2倍的增长&#xff0c;势必会有一定的空间浪费。例如当…...

mysql的ON DELETE CASCADE 和ON DELETE RESTRICT区别

​​ON DELETE CASCADE​​​ 和 ​​ON DELETE RESTRICT​​ 是 MySQL 中两种不同的外键约束级联操作。它们之间的主要区别在于当主表中的记录被删除时&#xff0c;子表中相关记录的处理方式。 ON DELETE CASCADE: 当在主表中删除一条记录时&#xff0c;所有与之相关的子表中…...

如何快速将图片转为excel?

一、打开金鸣表格文字识别软件。 二、点击添加文件按钮&#xff0c;在打开的窗口中选择目标图片&#xff0c;然后点击“打开”&#xff0c;将图片添加进待识别的列表中。 三、点击提交识别或识别全部。 四、识别完成后点击“打开文件”即可打开识别好的结果文件&#xff08;EXC…...

元编程(Metaprogramming)

本章将介绍第8️⃣种编程范式---元编程&#xff0c;以及它的优缺点、案例分析和小项目的代码示例。 优点 元编程的优点&#xff1a; 灵活性和可重用性&#xff1a;元编程允许在运行时生成代码&#xff0c;使得程序更加灵活和可重用。可以根据需要动态生成代码片段&#xff0…...