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

Redis的五种数据类型与命令

目录

引言

一 Redis的特性

二 Redis的安装

三 Redis的优点

四 Redis的五种数据类型与命令

五 Redis的配置文件

引言

Redis是什么? Remote Dictionary Service(远程字典服务器)

Redis 是一个开源的(BSD许可)的,C语言编写的,高性能的数据结构存储系统,它可以用作数据库,缓存和消息中间件。它基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一。

官方网站:Redis - The Real-time Data Platform

关系型数据库:支持表结构

非关系型数据库:不是以表结构存储数据

NoSQL,指的是 ‘非关系型数据库’, ‘NoSQL有时也称作Not Only SQL的缩写’

NoSQL数据库主要有以下四类,这些类别中的每一个都有其独特的属性和局限性:

基于键值对 key-value类型:Redis, memcached

列存储数据库 Column-oriented Graph: HBase

图形数据库 Graph based: Neo4j

文档型数据库: MongoDB

MongoDB是一个基于分布式文件存储的数据库,主要用来处理大量的文档。

一 Redis的特性

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

1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2.Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3.Redis支持数据的备份,即master-slave模式的数据备份。

二 Redis的安装

以Linux为例:

1.redis官网上下载最新安装包到家目录

Redis 全版本文件地址:Index of /releases/,在其后加上带版本号的包名即可,比如:http://download.redis.io/releases/redis-7.2.4.tar.gz。

通过以下命令下载压缩包

wget http://download.redis.io/releases/redis-7.2.4.tar.gz

2.解压压缩包,然后会在家目录下面生成一个对应文件夹redis-7.2.4。

tar zxvf redis-7.2.4.tar.gz

3.进入到解压后的目录redis-7.2.4中,然后执行下述命令。

cd redis-7.2.4
make
sudo make install

4.进入到utils目录

cd utils

5.接着进入到install_server.sh文件,注释掉下面的内容(大约在77行,有8行,shell的注释是以#进行的注释) 注释之后,保存退出并执行下面命令。

sudo ./install_server.sh

6.之后一直点Enter键

7.检查安装成功后的命令行

redis-cli
# 显示结果如下
127.0.0.1:6739>
ping
# 返回一个PONG

三 Redis的优点

1.性能高 读11w/s 写8.1w/s

2.具有丰富的数据类型(五大数据类型)

3.原子的 操作是原子的,但是redis事务是不支持原子的。

4.丰富的特性,支持发布订阅,通知,支持key过期。

四 Redis的五种数据类型与命令

首先输入 redis-cli

1.string类型

#设置命令
set key value
set k1 100
set k3 300#获取key值
get k1
get k3#一次性设置多个值
mset k11 11 k12 12 k13 helloworld k14 12.3
#一次性获取多个值
mget k11 k12 k13 k14#获取字符串的子串   -1表示倒数第一个
GETRANGE k13 0 1
GETRANGE k13 2 5
GETRANGE k13 0 -1#设置字符串的字串
SETRANGE k13 0 wu#在获取的同时进行修改
getset k1 hello#在设置值的同时 加上过期时间 比如将值设为3000 过期时间20s
setex k1 20 3000#累加
INCR k1   #每次加1个
INCRBY key + 值   #每次可以增加指定的值

2.list数据类型

# LPUSH key value1 value2...   RPUSH key value1 value2...
#将一个或多个值插入到头部  尾部  头插法  尾插法
lpush list1 1 2 3 4 5 6  8 9
rpush list2 3 2 1 4 5 6#lpop rpop  在列表两侧删除元素
lpop list1
rpop list1# lrange list1 0 -1  范围查找
lrange list1 0 -1#lset list1 0 888888 修改左边的值
lset list1 0 888888#redis中list是支持下标的(与STL中list不一样)#lindex list1 8  按下标访问
lindex list1 8#删除重复元素(与STL中list中unique不一样,unique需要进行sort)
#LREM list1 5 1  删除掉5个1
LREM list1 5 1#LTRIM list1 1 4  把1-4范围的数据留下来了  TRIM进行修剪
LTRIM list1 1 4#LINSERT list1 before | after 2 200 这里的2是在元素2前面或后面 插入200  并不是下标值
LINSERT list1 before 2 200

3.set数据类型

#添加元素
sadd myset1 1 2 3 1 2 3 4#scard myset1 显示元素数量
scard myset1#smembers myset1 显示元素
smembers myset1#srandmember myset1 number 随机获取number个数
srandmember myset1 3#spop myset1 number 随机选取number个元素 并删除
spop myset1 1#SDIFF key1 key2 出现在key1 不出现在key2的元素
SDIFF myset1 myset2#SINTER key1 key2 求交集
SINTER myset1 myset2#SUNION key1 key2 求并集
SUNION myset1 myset2

4.sorted set     即zset数据类型

将每个元素的前面设置一个double分数(看成是权重)

Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。

有序集合的成员是唯一的,但是分数却是可以重复的。

#向有序集合添加一个或多个成员 或者更新已存在成员的分数
zadd zset1 10 str1 20 str2 30 str2 40 str4#ZCOUNT 计算在有序集合中指定区间分数的成员数
zcout zset1 10 40#ZRANGE 打印数据和分数
ZRANGE zset1 0 1 withscores#保证元素的分数值一致的情况下面 使用ZRANGEBYLEX命令
#后面是范围值   [闭区间  (开区间   大于等于 小于
#ZRANGEBYLEX myset2 - +  -表示负无穷  +表示正无穷
zadd myset2 10 k1 10 hello 10 world 10 wangdao
ZRANGEBYLEX myset2 [h [k1  #大于等于h 小于等于k1的字符串#ZCORE 打印指定元素的分数
zscore zset1 str1

5.hash数据类型(重要)

Redis hash 是一个string类型的field(字段) 和value(值)的映射表,hash特别适合用于存储对象

Key-value模式不变,但value是一个键值对

map<key, map<key1, value>>

#string类型可以看成是key-value类型,但是hash可以看成是 key1 -(key2-value)
#map<key, value>                          map<key1, map<key2, value>>
#set k1 100
#hset hash1 str1 100#一次可以获取或者设置多个值
#key-people
hmset people age 10 sex man
#获取people的age sex
hmget people age sex#hkeys people  获取key
hkeys people
#hvalues people

可以练习一下这些命令

五 Redis的配置文件

最后要给大家介绍的是Redis的配置文件,里面有许多对Redis的配置进行了描述,有兴趣的可以自行阅读一下!

路径:/etc/redis下面会有一个6379.conf

相关文章:

Redis的五种数据类型与命令

目录 引言 一 Redis的特性 二 Redis的安装 三 Redis的优点 四 Redis的五种数据类型与命令 五 Redis的配置文件 引言 Redis是什么&#xff1f; Remote Dictionary Service(远程字典服务器) Redis 是一个开源的(BSD许可)的&#xff0c;C语言编写的&#xff0c;高性能的数…...

RocketMQ的详细讲解(四种mq的对比(activeMq、rabbitmq、rocketmq、kafka))

20240729 RocketMQ1 mq的三大作用 异步、削峰限流、解耦合2. 四种mq的对比&#xff08;activeMq、rabbitmq、rocketmq、kafka&#xff09;3 rocketmq特点1. 平台无关2. 能提供什么样的功能 4 rocketMq4.1 broker中的标题&#xff0c;来约束读和写4.2 rocketmq的结构4.3 读和写的…...

除了GPT,还有哪些好用的AI工具?

最强AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频百万播放量https://aitools.jurilu.com/ 多得很&#xff0c;这20个免费的国产AI工具&#xff0c;打工人必备&#xff0c;除了比chatGPT好用&#xff0c;甚至还可以用来变现…...

04 | 深入浅出索引(上)

此系列文章为极客时间课程《MySQL 实战 45 讲》的学习笔记&#xff01; 索引的常见模型 可以提供查询效率的数据结构有很多&#xff0c;常见的有三种&#xff1a;哈希表、有序数组、搜索数。 哈希表是一种以 key-value 形式存储的数据结构。输入一个 key&#xff0c;通过固定…...

Linux的yum源安装MySQL5.7

linux的yum源安装MySQL5.7 一、MySQL 1、简介 MySQL 是一种流行的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典公司 MySQL AB 开发&#xff0c;后来被 Oracle Corporation 收购。它是一个开源软件&#xff0c;提供了高效、稳定和可靠的数据管理解决…...

基于深度学习的音频自监督学习

基于深度学习的音频自监督学习&#xff08;Self-Supervised Learning, SSL&#xff09;是一种利用未标注的音频数据&#xff0c;通过设计自监督任务进行特征学习的方法。这种方法在需要大量标注数据的音频处理任务&#xff08;如语音识别、情感分析等&#xff09;中&#xff0c…...

用uniapp 及socket.io做一个简单聊天app1

####相关的表结构&#xff0c;用的是mysql 用户表&#xff08;Users&#xff09; 存储用户的基本信息。 CREATE TABLE Users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL UNIQUE,password VARCHAR(100) NOT NULL,email VARCHAR(100) UNIQUE,created_a…...

在Postman中引用JS库

前言 在做接口测试时&#xff0c;出于安全因素&#xff0c;请求参数需要做加密或者加上签名才能正常请求&#xff0c;例如&#xff1a;根据填写的请求参数进行hash计算进行签名。postman作为主流的接口调试工具也是支持请求预处理的&#xff0c;即在请求前使用JavaScript脚本对…...

学习笔记-系统框图简化求传递函数公式例题

简化系统结构图求系统传递函数例题 基础知识回顾 第四讲 控制系统的方框图 (zhihu.com) 「自控原理」2.3 方框图的绘制及化简_方框图化简-CSDN博客 自动控制原理笔记-结构图及其等效变换_结构图等效变换-CSDN博客 例子一 「自控原理」2.3 方框图的绘制及化简_方框图化简-CS…...

postgrsql——事务概述

事务概述 事务的特性 原子性&#xff08;Atomicity&#xff09;&#xff1a; 事务被视为一个整体&#xff0c;其中的操作要么全部执行成功&#xff0c;要么全部不执行&#xff0c;即不存在部分执行的情况。这确保了事务的完整性和一致性。一致性&#xff08;Consistency&…...

1.Spring Boot 简介(Spring MVC+Mybatis-plus)

文章目录 一&#xff0c;Spring Boot 简介二&#xff0c;搭建springboot项目并整合mybatis-plus框架1.pom导依赖2.添加启动项3.配置文件.yml 三&#xff0c;springboot集成 Spring MVC1.springmvc定义2.应用注解 一&#xff0c;Spring Boot 简介 SpringBoot是Spring的子工程(或…...

《计算机网络》(学习笔记)

目录 一、计算机网络体系结构 1.1 计算机网络概述 1.1.1 计算机网络的概念 1.1.2 计算机网络的组成 1.1.3 计算机网络的功能 1.1.4 电流交换、报文交换和分组交换 1.1.5 计算机网络的分类 1.1.6 计算机网络的性能指标 1.2 计算机网络体系结构与参考模型 1.2.1 计算机…...

指针函数和函数指针

函数名在表达式中应该如何被解读&#xff1f;答&#xff1a;函数名可以在表达式中被解读成“指向该函数的指针”。 函数指针和指针函数有什么区别&#xff1f;答&#xff1a;函数指针是一个指向函数的指针&#xff1b;指针函数是一个返回指针变量的函数。 一个函数能否有时候…...

Elasticsearch跨集群搜索

Elasticsearch&#xff08;简称ES&#xff09;是一种基于Lucene的搜索引擎&#xff0c;以其高性能、可扩展性和实时搜索能力而广受欢迎。在大型分布式系统中&#xff0c;跨集群搜索成为了一个重要的需求&#xff0c;它允许用户从多个Elasticsearch集群中联合查询数据&#xff0…...

基于FPGA的数字信号处理(19)--行波进位加法器

1、10进制加法是如何实现的&#xff1f; 10进制加法是大家在小学就学过的内容&#xff0c;不过在这里我还是帮大家回忆一下。考虑2个2位数的10进制加法&#xff0c;例如&#xff1a;15 28 43&#xff0c;它的运算过程如下&#xff1a; 个位两数相加&#xff0c;结果为5 8 1…...

树莓派下,centos7操作系统, TensorFlow java版实现植物分类功能

在树莓派上运行CentOS 7,并使用TensorFlow Java版本实现植物分类功能可以通过以下步骤实现。以下是详细的指导: 一、安装和设置环境 1. 更新系统并安装基本工具 确保你的CentOS 7系统是最新的,并安装必要的工具: sudo yum update -y sudo yum install -y wget unzip gi…...

开源一个react路由缓存库

Github仓库 背景 产品希望可以像浏览器那样每打开一个路由&#xff0c;会多一个tab&#xff0c;用户可以切换tab访问之前加载过的页面&#xff0c;且不会重新加载。真就产品一句话…… Github上有轮子了吗 Github上开箱即用的轮子是基于react-router-dom V5实现的&#xff…...

go-kratos 学习笔记(7) 服务发现服务间通信grpc调用

服务发现 Registry 接口分为两个&#xff0c;Registrar 为实例注册和反注册&#xff0c;Discovery 为服务实例列表获取 创建一个 Discoverer 服务间的通信使用的grpc&#xff0c;放到data层&#xff0c;实现的是从uses服务调用orders服务 app/users/internal/data.go 加入 New…...

SPSS个人版是什么软件

SPSS是一款数据统计、分析软件&#xff0c;它由IBM公司出品&#xff0c;这款软件平台提供了文本分析、大量的机器学习算法、数据分析模型、高级统计分析功能等&#xff0c;软件易学且功能非常强大&#xff0c;可以使用SPSS制作图表&#xff0c;例如柱状、饼状、折线等图表&…...

Minos 多主机分布式 docker-compose 集群部署

参考 docker-compose搭建多主机分布式minio - 会bk的鱼 - 博客园 (cnblogs.com) 【运维】docker-compose安装minio集群-CSDN博客 Minio 是个基于 Golang 编写的开源对象存储套件&#xff0c;虽然轻量&#xff0c;却拥有着不错的性能 中文地址&#xff1a;MinIO | 用于AI的S3 …...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...