Redis非关系型数据库

devtools/2024/9/20 4:05:44/ 标签: redis, 数据库, 缓存

Redis是什么

Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(Key/Value)分布式内存数据 库,基于内存运行,并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称为 数据结构服务器。


Windows安装redis

1.下载后解压

2.命令行运行(可以指定配置文件),默认端口:6379

redis-server redis.windows.conf

3.通过客户端去访问 redis-cli


基本数据库常识

默认 16 个数据库,下标从零开始,初始默认使用零号库,在redis.conf里面有默认的配置

  • Select命令切换数据库
  • dbsize查看库中的数据量
  • Flushdb:清空当前库
  • Flushall:清空全部的库


常用命令

Redis键(key)

  • keys * 查看所有的key
  • exists key 的名字,判断某个key是否存在
  • expire key 秒钟:为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除
  • ttl key 查看还有多少秒过期,-1 表示永不过期,-2 表示已过期
  • type key 查看你的key是什么类型


字符串String操作命令

  • set key value 设置值
  • get key 获得key的值
  • del key 删除key
  • append key "hello" 追加内容 对不存在的 key 进行 APPEND ,等同于 SET
  • STRLEN key 获取字符串的长度
  • incr key         + 1只能对数值
  • incrby key num +num
  • decr key         -1
  • decrby key num -num

  • getrange 获取指定区间范围内的值,类似between...and的关系,从零到负一表示全部
  • setrange 设置指定区间范围内的值,格式是setrange key值 具体值
  • setex(set with expire)键秒值
  • setnx(set if not exist)
  • mset Mset 命令用于同时设置一个或多个 key-value 对。
  • mget Mget 命令返回所有(一个或多个)给定 key 的值。如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
  • msetnx 当所有 key 都成功设置,返回 1 。
  • getset(先get再set)

Redis五种基本数据类型

String字符串、List列表、Set集合、Hash哈希(Map)、sorkedSet有序集合


列表List

  • Lpush:将一个或多个值插入到列表头部。
  • rpush:将一个或多个值插入到列表尾部。
  • lrange:返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。
  • lpop 命令用于移除并返回列表的第一个元素。当列表 key 不存在时,返回 nil 。
  • rpop 移除列表的最后一个元素,返回值为移除的元素。
  • Lindex,按照索引下标获得元素(-1(特殊)代表最后一个, 0 代表是第一个)

  • llen 用于返回列表的长度。
  • lrem key 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。删除掉count个value值

  • Ltrim key 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
  • rpoplpush 移除列表的最后一个元素,并将该元素添加到另一个列表并返回。

  • lset key index value 将列表 key 下标为 index 的元素的值设置为 value 。不能超出下标界限
  • linsert key before/after pivot value 用于在列表的元素前或者后插入元素。将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。(第一个)


集合Set

  • sadd 将一个或多个成员元素加入到集合中,不能重复,返回添加成功的数量
  • smembers 返回集合中的所有的成员。
  • sismember 命令判断成员元素是否是集合的成员。
  • scard,获取集合里面的元素个数
  • srem key value 用于移除集合中的一个或多个成员元素(返回删除元素的个数)
  • srandmember key 命令用于返回集合中的一个随机元素
  • spop key 用于移除集合中的指定 key 的一个或多个随机元素(返回删除的元素)

  • smove SOURCE DESTINATION MEMBER 将指定成员 member 元素从 source 集合移动到 destination 集合。
  • 数字集合类- 差集: sdiff sdiff A B 返回A集合交于B集合的差集- 交集: sinter sinter A B 返回A和B共同的元素- 并集: sunion sunion返回A和B中所有的元素


http://www.ppmy.cn/devtools/96911.html

相关文章

react18 + ts 使用video.js 直播.m3u8格式的视频流

一、安装依赖 我使用的video.js版本是8.17.3,从 Video.js 7.x 开始,HLS 支持被内置到了 Video.js 中所以不需要安装其他依赖 npm i video.js 二、创建VideoPlayer组件 import React, { useEffect, useRef } from react import videojs from video.js …

使用Webstorm进行高效的全栈JavaScript开发

使用WebStorm进行高效的全栈JavaScript开发是一个很好的选择,因为WebStorm是JetBrains出品的一款功能强大的IDE,专为前端和后端开发者设计,支持JavaScript、TypeScript、Node.js、React、Vue.js、Angular等多种技术栈。以下是一些建议&#x…

Linux软件编程day(12) -udp

任务: 1.利用套接字实现两台主机全双工通信 socket socket bind 发一次数据(数据可以随便) 接收一次数据(目的:接收发送方的IPPort) 两个任务 …

saas服务,对同一个功能,需要使用不同客户的接口。那么哪种设计模式可以解决我的问题?

Q: 我现在遇到的问题:我在做一个saas服务,现在面对多家客户。对同一个功能,需要使用不同客户的接口。比如,我的发送短信功能,每个客户的发消息接口都不同。那么哪种设计模式可以解决我的问题,可以使用c#来给…

Redis:缓存击穿,缓存穿透,缓存雪崩

缓存穿透 缓存和数据库中都没有的数据,可用户还是源源不断的发起请求,导致每次请求都会到数据库,从而压垮数据库。 这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。 *** 解决方案** 对空值进行缓存标…

应急响应:挖矿木马-实战 案例一.【Linux 系统-排查和删除】

什么是挖矿木马 挖矿木马是一种恶意软件,它在未经用户许可的情况下,利用用户的计算资源来挖掘加密货币,从而为攻击者带来非法收益。这类软件通常通过多种手段传播,例如利用系统漏洞、弱密码爆破、伪装正常软件等方法感染目标设备…

【CTF | WEB】003、攻防世界WEB题目之xff_referer

文章目录 xff_referer题目描述:解题思路:XFF与Referer基本了解1. XFF(X-Forwarded-For):2. Referer:简单总结: 解题实操: xff_referer 题目描述: X老师告诉小宁其实xff和referer是可以伪造的。…

Springboot-从服务器获取一个输入流,转成视频文件存到oss

要在Spring Boot应用中从服务器获取一个输入流,然后将该流转换为视频文件并存储到阿里云 OSS中,你可以遵循以下步骤: 设置阿里云OSS客户端:首先,你需要配置阿里云OSS客户端,以便能够上传文件到OSS。 获取输入流:使用HTTP客户端(如RestTemplate或WebClient)从服务器…

c语言通过逻辑运算符和if语句制作招聘筛选程序

c语言里逻辑运算符 && 逻辑与 a&&b || 逻辑或 a||b ! 逻辑非 逻辑运算符计算结果是true和false,其中用1表示true,0表示false 这里要制作一个招聘筛选程序&#xff0c;要求年龄大于等于25&#xff0c;身高不低于1米7 代码如下 #include<s…

4.4、配置交换机vlan

一、配置前的碎碎恋 前面大致了解了二层交换机的一些缺点&#xff0c;还有什么是vlan&#xff0c;不同vlan之间的通信。 接下来看看配置交换机vlan用到哪些命令&#xff1a; 1.进入全局配置模式 Switch> enable Switch# configure terminal Switch(config)# 2. 创建VLAN…

结合GPT与Python实现端口检测工具(含多线程)

端口检测器是一个非常实用的网络工具&#xff0c;它主要用于检测服务器或本地计算机上的特定端口是否处于开放状态。通过这个工具&#xff0c;你可以快速识别和诊断网络连接问题&#xff0c;确保关键服务的端口能够正常接收和处理数据。这对于网络管理员和开发者来说是一个不可…

【PGCCC】使用 Postgres 递归 CTE 进行图形检索

您是否知道可以将 Postgres 用作某些用例的图形数据库&#xff1f; 假设您有如下图表&#xff1a; 我们可以在 NetworkX 中构建此图&#xff1a; 1import networkx as nx23G nx.Graph()45G.add_edges_from([6 ("A", "B"),7 ("A", "…

Windows 环境下 Go 语言使用第三方压缩包 gozstd 的报错处理

该文章主要记录在windows平台用go语言使用gozstd包时&#xff0c;遇到的错误及处理过程&#xff08;踩坑之旅&#xff09;&#xff01; 一、gozstd简介 gozstd是一个针对Zstandard&#xff08;简称Zstd&#xff09;的Go语言包装器&#xff0c;它提供了简单且高效的API&#xf…

从0开发一个 组件/插件 并部署

从零开始发布一个 Vue3 Vite 的 npm 包 1. npm账号配置 1.1 注册新账号 注册地址&#xff1a; www.npmjs.com/signup 1.2 登录账号 在命令行输入&#xff1a; npm login&#xff0c;此时会提醒你打开浏览器进行登录&#xff0c;然后邮件接收验证码&#xff0c;输入登录 …

在PHP中使用file_get_contents提取JSON值

在PHP开发中&#xff0c;我们经常需要处理各种数据格式&#xff0c;其中JSON是一种非常常见的数据交换格式。有时候&#xff0c;我们需要从网络上的某个URL获取JSON格式的数据&#xff0c;并提取其中的值。本文将介绍如何使用file_get_contents函数在PHP中获取并解析JSON数据。…

MT6761 快充同步

MT6761 是反激式电源的高性能60V同步整流器。MT6761兼容各种反激转换器类型。支持 DCM、CCM 和准谐振模式。MT6761集成了一个60V功率MOSFET&#xff0c;可以取代肖特基二极管&#xff0c;提高效率。V SW <V TH-ON 时&#xff0c;MT6761内部 MOSFET 导通。V SW >V TH-OFF …

贪心算法3

134. 加油站 全局思考&#xff1a;总油量减去总消耗大于等于零那么一定可以跑完一圈,局部贪心&#xff1a;累加每个站的净胜油量,如果<0,则在此之前(包括该站)都不是起始位置,从下一个位置开始寻找 class Solution { public:int canCompleteCircuit(vector<int>&…

k8s 存储卷管理 持久卷 pv/pvc 临时卷

持久卷 hostPath 卷 NFS 卷 访问验证 nfs 卷 curl http://10.244.1.19 PV/PVC 持久卷声明 临时卷 configMap nginx 解析 php 创建 ConfigMap 挂载 ConfigMap secret 卷 emptyDir 卷

三菱定位控制(一)

下面小编开始开始总结学习定位控制&#xff0c;以Q系列三菱PLC来展开学习&#xff0c;希望对读者或者小白有所帮助&#xff01;&#xff01;&#xff01; 一 三菱PLC定位模块 为什么需要学习定位模块&#xff08;三菱FXCPU能实现一个伺服电机的控制&#xff0c;多个要买定位模…

vue3中子向父传数据

父组件 首先&#xff0c;我们创建一个父组件&#xff0c;名为 ParentComponent.vue&#xff1a; <template><div><h1>父组件</h1><p>从子组件接收到的数据&#xff1a;{{ receivedData }}</p><ChildComponent sendData"updateDa…