学习node.js 十 redis的基本语法

news2024/9/21 5:50:41

redis

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,它提供了一个高效的键值存储解决方案,并支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)等。它被广泛应用于缓存、消息队列、实时统计等场景。

以下是一些关键特性和用途介绍:

  1. 内存存储:Redis主要将数据存储在内存中,因此具有快速的读写性能。它可以持久化数据到磁盘,以便在重新启动后恢复数据。
  2. 多种数据结构:Redis不仅仅是一个简单的键值存储,它支持多种数据结构,如字符串、哈希、列表、集合和有序集合。这些数据结构使得Redis能够更灵活地存储和操作数据。
  3. 发布/订阅:Redis支持发布/订阅模式,允许多个客户端订阅一个或多个频道,以接收实时发布的消息。这使得Redis可以用作实时消息系统。
  4. 事务支持:Redis支持事务,可以将多个命令打包成一个原子操作执行,确保这些命令要么全部执行成功,要么全部失败。
  5. 持久化:Redis提供了两种持久化数据的方式:RDB(Redis Database)和AOF(Append Only File)。RDB是将数据以快照形式保存到磁盘,而AOF是将每个写操作追加到文件中。这些机制可以确保数据在意外宕机或重启后的持久性。
  6. 高可用性:Redis支持主从复制和Sentinel哨兵机制。通过主从复制,可以创建多个Redis实例的副本,以提高读取性能和容错能力。Sentinel是一个用于监控和自动故障转移的系统,它可以在主节点宕机时自动将从节点提升为主节点。
  7. 缓存:由于Redis具有快速的读写性能和灵活的数据结构,它被广泛用作缓存层。它可以将常用的数据存储在内存中,以加快数据访问速度,减轻后端数据库的负载。
  8. 实时统计:Redis的计数器和有序集合等数据结构使其非常适合实时统计场景。它可以存储和更新计数器,并对有序集合进行排名和范围查询,用于统计和排行榜功能

redis的基本使用

1.字符串的操作

SET key value [NX|XX] [EX seconds] [PX milliseconds] [GET]

介绍:

  • key:要设置的键名。
  • value:要设置的值。
  • NX:可选参数,表示只在键不存在时才设置值。
  • XX:可选参数,表示只在键已经存在时才设置值。
  • EX seconds:可选参数,将键的过期时间设置为指定的秒数。
  • PX milliseconds:可选参数,将键的过期时间设置为指定的毫秒数。
  • GET:可选参数,返回键的旧值。

运用:

  1. 设置键名为 “name”值为“jjs"

    set name "jjs"
    
  2. 设置键名为 “name” 的值为 “John”:

    set name "John" XX
    
  3. 设置键名为 “counter” 的值为 10,并设置过期时间为 60 秒:

     set counter 100 EX 60
    
  4. 只在键名为 “status” 不存在时,设置其值为 “active”:

    set status "active" NX
    
  5. 只在键名为 “score” 已经存在时,将其值设置为 5:

     set score 5 XX
    
  6. 设置键名为 “name” 的值为 “Hello”,并返回旧的值:

    set name "hello" GET
    
  7. 删除键名为 “name” 的键:

    DEL name
    
  8. 批量删除多个键名:

    del a b c
    
  9. 删除不存在的键名,不会报错,返回删除的键数量为 0:

     del not_exist_key
    

执行效果图:

在这里插入图片描述

2. 集合操作

集合(Set)是一种无序且不重复的数据结构,用于存储一组独立的元素。集合中的元素之间没有明确的顺序关系,每个元素在集合中只能出现一次。

运用:

  1. 添加成员到集合:

     sadd mumber "apple"
    
  2. 获取集合中的所有成员:

    smembers mumber
    
  3. 检查成员是否存在于集合中:

     sismember mumber "bule"
    
  4. 从集合中移除成员:

    srem mumber "bule"
    
  5. 获取集合中的成员数量:

    scard mumber
    
  6. 获取随机成员:

    srandmember mumber
    
  7. 求多个集合的并集:

    sunion color mumber
    
  8. 求多个集合的交集:

     sinter color mumber
    
  9. 求多个集合的差集:

    sdiff color mumber
    

执行效果:

在这里插入图片描述

3. 哈希表操作

哈希表(Hash)是一种数据结构,也称为字典、关联数组或映射,用于存储键值对集合。在哈希表中,键和值都是存储的数据项,并通过哈希函数将键映射到特定的存储位置,从而实现快速的数据访问和查找。

运用:

  1. 设置哈希表中的字段值:

    hset obj name "jjs"
    
  2. 获取哈希表中的字段值:

    hget obj name
    
  3. 一次设置多个字段的值:

    hmset obj name "jtt" age 15 email 12412@qq.com
    
  4. 获取多个字段的值:

    hmget obj name age email
    
  5. 获取哈希表中所有字段和值:

     hgetall obj
    
  6. 删除哈希表中的字段

    hdel obj email
    
  7. 检查哈希表中是否存在指定字段:

    hexists obj name
    
  8. 获取哈希表中所有的字段:

     hkeys obj
    
    
  9. 获取哈希表中所有的值:

    hvals obj
    
    
  10. 获取哈希表中字段的数量:

    hlen obj
    

运行效果:

在这里插入图片描述

4. 列表操作

列表(List)是一种有序、可变且可重复的数据结构。在许多编程语言和数据存储系统中,列表是一种常见的数据结构类型,用于存储一组元素

运用:

  1. 添加元素:

    LPUSH key element1 element2 …:将一个或多个元素从列表的左侧插入,即将元素依次插入列表的头部。如果列表不存在,则在执行操作前会自动创建一个新的列表。
    RPUSH key element1 element2 …:将一个或多个元素从列表的右侧插入,即将元素依次插入列表的尾部。如果列表不存在,则在执行操作前会自动创建一个新的列表。

     lpush list 1 2 3
    
  2. 获取元素

    lindex list 4 // 获取列表中指定索引位置的元素
    lrange list 0 -1 // 获取列表中指定范围内的元素
    
  3. 修改元素:

    LSET key index newValue  // 修改列表中指定索引位置的元素的值
    
  4. 删除元素

    LPOP key  // 从列表的左侧移除并返回第一个元素
    RPOP key  // 从列表的右侧移除并返回最后一个元素
    LREM key count value  // 从列表中删除指定数量的指定值元素
    
  5. 获取列表长度

    llen key
    

执行效果:

在这里插入图片描述

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

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

相关文章

素数之和(c语言)

1./描述 //牛牛刚刚学了素数的定义:素数值指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数 //牛牛想知道在[l, r] 范围内全部素数的和 //输入描述: //输入两个正整数 l,r 表示闭区间范围 //输出描述: //…

sqli-labs靶场通关攻略 46-50

主页有sqli-labs靶场通关攻略 1-45 第四六关 less-46 步骤一:利用报错注入查询库 ?sort1 and updatexml(1,concat(0x7e,database(),0x7e),1) 步骤二:查询表名 ?sort1 and updatexml(1,concat(0x7e,(select group_concat(table_name)from informatio…

如何通过日志或gv$sql_audit,分析OceanBase运行时的异常SQL

本文作者:郑增权,爱可生 DBA 团队成员,OceanBase 和 MySQL 数据库技术爱好者。本文约 2000 字,预计阅读需要 8 分钟。 简介 在 OCP 云平台的 Top SQL 界面中,能观察到异常SQL,但这些SQL并未明确显示具体的…

防泄密的方法都有哪些?

一、防泄密的方法都有哪些?使用安全通讯工具:采用加密通讯工具,确保敏感信息在传输过程中不被窃取或篡改。定期安全审计:对系统和数据进行定期的安全审计和检查,发现潜在的泄密风险并及时处理。文件加密:对…

光伏电站的施工步骤

施工准备:在施工前,需要进行现场勘查,了解施工场地的地形、地貌、气候等情况,制定施工方案和安全措施。同时,还需要准备好施工所需的材料和设备,如光伏组件、支架、电缆、逆变器等 。基础施工:根…

“面试宝典:高频算法题目详解与总结”

干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…

鸿蒙Harmony开发实战:自定义圆形组件-Canvas

在采用Java配合xml布局编写鸿蒙app页面的时候,发现sdk自带的Image组件并不能将图片设置成圆形,反复了翻阅了官方API手册(主要查阅了Compont和Image相关的API),起初发现了一个setCornerRadius方法,于是想着将…

高职院校人工智能训练师边缘计算实训室建设方案

一、引言 随着人工智能技术的飞速发展,边缘计算在提升数据处理效率、降低延迟、保护数据安全等方面展现出巨大潜力。高职院校作为技能型人才培养的重要基地,建设人工智能训练师边缘计算实训室,旨在培养掌握前沿技术、具备实战能力的复合型人才…

pnpm国内源设置

一、背景 在国内使用pnpm时,由于网络问题,经常会遇到速度慢或无法访问的问题。为了提高效率,可以将pnpm的源设置为国内的镜像源。以下是一些常用的国内pnpm镜像源以及如何设置它们的方法。 二、国内可用源 2.1 淘宝pnpm源 https://registry…

神经网络卷积层

一、卷积操作 对应位置相乘相加,最终组成一个新的矩阵,实现了降维。 二、代码 import torch import torchvision from torch import nn from torch.nn import Conv2d from torch.utils.data import DataLoaderdataset torchvision.datasets.CIFAR10(&…

三级_网络技术_54_应用题

一、 请根据下图所示网络结构回答下列问题。 1.填写路由器RG的路由表项。 目的网络/掩码长度输出端口__________S0(直接连接)__________S1(直接连接)__________S0__________S1__________S0__________S1 2.如果将10.10.67.128/2…

C++----简单了解vector

大家好,今天我们来讲讲与string相似的向量类型。之所以说他们是相似的原因是他们其中的数据类型有些效果都是一样的。当然大家不能说,既然是差不多的干嘛还有一个这个啊。不如直接用string就可以了。当然世界名言存在即合理。既然我们都能想到的东西&…

Docker 部署 net6 webapi项目

摘要:记录 net6 webapi 项目在 docker 上部署步骤,方便自己后面查看,也方便他人学习。 1. 创建 webapi 项目 点击创建新项目 选择 ASP.NET Core Web API 项目,点击下一步。 给项目命名,然后勾选将解决方案和项目放在同…

C++初学(18)

18.1、读取数字的循环 假设要编写一个将一系列的数字读入到数组中的程序,并允许用户在数组填满之前结束输入。一种方法是利用cin: int n; cin>>n; 如果用户输入的是一个单词,而不是一个数字将会怎么样?可能会发生这些情况…

环境变量--永久 & 暂时

Linux 环境变量配置信息 查看环境变量 export 查看系统所有环境变量echo $PATH 查看 PATH 环境变量值 环境变量的命名规则为:变量名变量值 多个变量值之间使用 : 分隔 添加环境变量 环境变量分类 按照作用域分类 环境变量可以简单的分成用户自定义的环境变量…

OJ-0829

题目 示例1 输入: 5 4 1 1 2 3 5 1 2 3 1 4 3 4 5 2 3 4 输出: 3 4 1 2说明:测试用例的优先级计算如下: T1Pf1Pf2Pf31124 T2Pf1Pf4134 T3Pf3Pf4Pf523510 T4Pf2Pf3Pf41236 按照优先级从小到大,以及相同优先级,ID小的先执行的规则&…

#C++ 笔记三

七、异常处理 1.概念 异常是程序在执行期间产生的问题。 C异常是指在程序运行时发生的特殊情况,比如下标越界等。 异常提供了一种转移程序控制权的方式。 2.抛出异常 throw语句的操作数可以是任意表达式,表达式结果的类型决定了抛出异常的类型。 …

Elasticsearch Suggesters API详解与联想词自动补全应用

Elasticsearch Suggesters API详解与联想词自动补全应用 引言Elasticsearch Suggesters1. Term Suggester实现步骤示例 2. Phrase Suggester示例 3. Completion Suggester创建映射和插入数据查询示例 4. Context Suggester示例 Completion Suggester1. 工作原理2. 使用流程3. 使…

企业级低代码解决方案:JNPF平台深度解析

随着数字化转型的不断推进,企业对于快速开发、高效部署和灵活迭代的需求日益增长。低代码开发平台应运而生,成为加速企业应用开发的重要工具。在众多低代码平台中,JNPF凭借其强大的企业级特性脱颖而出,成为众多企业的首选。本文将…

【系统架构设计师-2019年】综合知识-答案及详解

文章目录 【第1题】【第2~3题】【第4题】【第5题】【第6~7题】【第8题】【第9~10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16~17题】【第18~19题】【第20~21题】【第22~23题】【第24~25题】【第26~28题】【第29~30题】【第31~32题】【第33题】【第34题】【第…