Redis 五种基本数据结构及基本使用

news2024/9/23 1:30:49

一、数据结构

二、使用

2.1 String 的使用

Redis String 一个键对应一个值,并且是二进制安全的,值可以是图片或者序列化后的对象。

一个键最大能存储 512 MB。

2.1.1 set 命令的使用

  • set key value
    127.0.0.1:6379> set name yunhu
    OK
    127.0.0.1:6379> get name
    "yunhu"
    
  • 重复对同一个键设置值,导致覆盖
    127.0.0.1:6379> set age 15
    OK
    127.0.0.1:6379> set age 20
    OK
    127.0.0.1:6379> get age
    "20"
    
    15 已经被覆盖了。
  • set key value nx
    • 当 key 不存在时,返回 OK 表示设置成功
      127.0.0.1:6379> get year
      (nil)
      127.0.0.1:6379> set year 2020 nx
      OK
      127.0.0.1:6379> get year
      "2020"
      
    • 当 key 存在时,设置失败返回 nil 值。
      127.0.0.1:6379> get year
      "2020"
      127.0.0.1:6379> set year 1978 nx
      (nil)
      
  • set key value xx
    • 当 key 不存在时,放弃设置,返回空值
      127.0.0.1:6379> get age // age 这个键不存在
      (nil)
      127.0.0.1:6379> set age 18 xx
      (nil)
      
    • 当 key 存在时,可以设置。
      127.0.0.1:6379> set age 20
      OK
      127.0.0.1:6379> set age 18 xx
      OK
      127.0.0.1:6379> get age
      "18"
      

2.1.2 GETSET 命令的使用

GETSET 获取旧值并设置新值。

127.0.0.1:6379> get age
"18"
127.0.0.1:6379> GETSET age 25 // 将 age 设为 25,并且返回旧的值 18
"18"
127.0.0.1:6379> get age // 获取新的值
"25"

2.2 Hash 的使用

Redis Hash 是一个键值对集合,字符类型的 fieldvalue 组成的。

Hash 适合用来存储对象。

每个 Hash 可以存储 2 32 − 1 2^{32}-1 2321个键值对。

127.0.0.1:6379> HMSET student id 1 name "yunhu"
OK
127.0.0.1:6379> HGET student id
"1"
127.0.0.1:6379> HGET student name
"yunhu"

设置 Hash 名是 student,键为 id 的值是 1,键为 name 的值是 yunhu

然后去获取对应键的值。

2.3 List 的使用

Redis List 就是字符串列表。

127.0.0.1:6379> DEL student
(integer) 1
127.0.0.1:6379> lpush student "yunhu" // 将 yunhu 插入 student 列表头部
(integer) 1
127.0.0.1:6379> lpush student alice
(integer) 2
127.0.0.1:6379> lpush student bob
(integer) 3
127.0.0.1:6379> lrange student 0 -1 // 遍历 student 中的元素
1) "bob"
2) "alice"
3) "yunhu"

列表可以存储 个元素。

2.4 set 的使用

Redis Set 是一个无序的集合,底层使用哈希表实现,添加、删除、搜索都为 O ( 1 ) O(1) O(1)

127.0.0.1:6379> DEL student
(integer) 1
127.0.0.1:6379> sadd student alice
(integer) 1
127.0.0.1:6379> sadd student bob
(integer) 1
127.0.0.1:6379> sadd student xiaoming
(integer) 1
127.0.0.1:6379> sadd student bob // 添加两次 bob,但实际上只有一个。
(integer) 0
127.0.0.1:6379> smembers student // 返回集合中的所有的成员
1) "xiaoming"
2) "bob"
3) "alice"

2.5 zset 的使用

zset 与 set 一样都是集合,但是 zset 每个元素关联一个 double 类型的分数,通过这个分数对集合进行从小到大排序。分数可以重复。

127.0.0.1:6379> del student
(integer) 1
127.0.0.1:6379> zadd student 1 yunhu
(integer) 1
127.0.0.1:6379> zadd student 2 alice
(integer) 1
127.0.0.1:6379> zadd student 3 bob
(integer) 1
127.0.0.1:6379> zrangebyscore student 0 1000
1) "yunhu"
2) "alice"
3) "bob"
127.0.0.1:6379> zadd student 0 xiaoming
(integer) 1
127.0.0.1:6379> zrangebyscore student 0 1000
1) "xiaoming"
2) "yunhu"
3) "alice"
4) "bob"

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

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

相关文章

【Docker】docker基础使用

文章目录 docker概念什么是dockerdocker引擎迭代docker与虚拟机docker版本发展 docker基础docker架构docker Registry(镜像仓库)镜像仓库使用流程实际研发镜像仓库使用不同镜像仓库的拉取 docker常用命令镜像仓库命令docker logindocker pulldocker pushdocker searchdocker lo…

Github的加速访问(解决github进不去)

1.下载Steam Steam 现更名为 Watt Toolkit 并在 Microsoft Store 中已可用 2.打开Steam 3.勾选github 一键加速

java试题1

1、哪些问题是HTTPS无法解决的? Http是基于TCP协议的,在网络层的传输耗时比较长,https没有解决这个问题;http头是不能压缩的,每次要传递很大的数据包,每个连接也只能支持一个请求。同时https应用了很多加密…

Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载

目录 一、对 Docker 的理解 1、Docker 基本概念 2、Docker 与 虚拟机的区别 3、何为镜像和容器? 4、Docker 主要架构 二、Docker 基本操作 1、Docker 镜像操作 2、案例(镜像):去 DockerHub 搜索并拉取一个 Nginx 镜像&am…

第一百天学习记录:线性代数:行列式(宋浩板书)

n阶行列式 注:二阶行列式和三阶行列式以及排列和逆序数见高等数学自学向量篇中间穿插的线性代数知识点补充。 行列式的性质 性质7(☆☆☆) 行列式按行展开 拉普拉斯 行列式相乘 行列式的计算 Cramer法则 题外话&#…

【unity实战】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(一)(附源码)

文章目录 本期目标前言欣赏开始1. 角色移动和场景搭建2. 绑定枪械2.1 首先将各种枪械的素材添加给人物作为子物体2.2 给枪械也分别添加两个子物体用作标记枪口和弹仓位置 3. 枪械动画4. 切换枪械5. 发射功能5.1 手枪(1) 枪械随着鼠标旋转(2) 射击时间间隔(3) 创建好子弹、弹壳和…

xilinx zc706 10/100/100M以太网完整性测试说明

一:概述 最近接触FPGA比较多,本次是一款zc706芯片的FPGA,开发版是长这样的,基本上开发也是安装开发版的模块组合进行开发。 开发版上以太网芯片使用的是Marvell 881116R。 本次只是验证下控制以太网进行模式测试的说明&#xf…

子集 (力扣)数学推理 JAVA

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出:[[],[1],[2],[1,2],[3],[…

Windows10上Docker和Kubernetes的安装

官网:https://www.docker.com/products/docker-desktop/ 历史版本:https://download.docker.com/linux/static/stable/ 1、去Docker官网下载Docker Desktop,并一键安装 2、安装k8s所需的镜像 下载k8s-for-docker-desktop包 git clone http…

WAIC2023记录

汤晓鸥 学生与工作: 微软布局大模型方向

Vue3+Vite 项目配置 vue-router,并完成路由模块化

前言 我的技术栈:Vue3 Vite TypeScirpt我的包管理工具:pnpm(v8.6.6)我的 node.js 版本:v16.14.0 一、安装vue-router pnpm install vue-router二、创建页面 在 /src/views 文件夹下创建 home、login、test文件夹…

Chat2DB-开源AI智能数据库客户端工具 能够将自然语言转换为SQL

一、Chat2DB是什么 Chat2DB 是一款有开源免费的多数据库客户端工具,支持windows、mac本地安装,也支持服务器端部署,web网页访问。和传统的数据库客户端软件Navicat、DBeaver 相比Chat2DB集成了AIGC的能力,能够将自然语言转换为SQ…

论文笔记--SentEval: An Evaluation Toolkit for Universal Sentence Representations

论文笔记--SentEval: An Evaluation Toolkit for Universal Sentence Representations 1. 文章简介2. 文章概括3 文章重点技术3.1 evaluation pipeline3.2 使用 4. 代码4.1 数据下载4.2 句子嵌入4.3 句子嵌入评估 5. 文章亮点6. 原文传送门7. References 1. 文章简介 标题&…

windows PE 指南(基础部分)(一)

windows PE 指南(基础部分)(一) 查找软件注册码64位汇编和编译连接PE和COFF文件简介PE和COFF文件布局简介源代码的作用obj的作用PE的作用 COFF格式文件布局概览PE格式文件布局概览COFF格式和PE格式的布局总结 COFF头COFF File Hea…

linux的磁盘分区管理思路

1、基本分区管理 1.1、磁盘划分思路 进入分区 新建分区 fdisk 更新分区表(刷新)partprobe /dev/sda 格式化 (文件系统) 挂载使用 - -> mount(开机自动挂载||autofs自动挂载) 1.2、使用fdisk分区 n创建新分区(…

一、VMware虚拟机安装以及centos7镜像安装

目录 一、安装VMware虚拟机 二、centos7安装 (模板机) 2.1 虚拟机安装 2.2 虚拟机配置 三、配置服务器 IP 地址 1. VMware中配置 2. window服务器 3. 在虚拟机中(centos0) 资源包网盘链接:链接:https://pan.bai…

ActiveMQ消息中间件应用场景

一、ActiveMQ简介 ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provide实现。尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中仍然扮演这特殊的地位。 二、Active…

速成版-带您一天学完vue2框架

vue是一个前端js框架,可以简化Dom操作,实现响应式数据驱动。前面全是废话,哈哈,接下来一起学习吧。 目录 一、vue基础 1.1、vue简介 1.2、第一个Vue程序 1.3、vue基础-el挂载点 1.4、data数据对象 二、本地应用-指令篇 2.…

DESCN:用于个体治疗效果估计的深度全空间交叉网络

英文题目:DESCN: Deep Entire Space Cross Networks for Individual Treatment Effect Estimation 翻译:用于个体治疗效果估计的深度全空间交叉网络 单位:阿里 论文链接: 代码:https://github.com/kailiang-zhong/…

由中序及后序遍历序列构建二叉树的函数参数解析

【二叉树构建函数的参数确立示意图】 ile:中序遍历左端点位置,iri:中序遍历右端点位置 ple:后序遍历左端点位置,pri:后序遍历右端点位置 【函数代码】 int build(int ile,int iri,int ple,int pri){int ro…