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是什么? Remote Dictionary Service(远程字典服务器) Redis 是一个开源的(BSD许可)的,C语言编写的,高性能的数…...

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

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

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

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

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

用uniapp 及socket.io做一个简单聊天app1
####相关的表结构,用的是mysql 用户表(Users) 存储用户的基本信息。 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库
前言 在做接口测试时,出于安全因素,请求参数需要做加密或者加上签名才能正常请求,例如:根据填写的请求参数进行hash计算进行签名。postman作为主流的接口调试工具也是支持请求预处理的,即在请求前使用JavaScript脚本对…...

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

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

1.Spring Boot 简介(Spring MVC+Mybatis-plus)
文章目录 一,Spring Boot 简介二,搭建springboot项目并整合mybatis-plus框架1.pom导依赖2.添加启动项3.配置文件.yml 三,springboot集成 Spring MVC1.springmvc定义2.应用注解 一,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 计算机…...

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

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

基于FPGA的数字信号处理(19)--行波进位加法器
1、10进制加法是如何实现的? 10进制加法是大家在小学就学过的内容,不过在这里我还是帮大家回忆一下。考虑2个2位数的10进制加法,例如:15 28 43,它的运算过程如下: 个位两数相加,结果为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仓库 背景 产品希望可以像浏览器那样每打开一个路由,会多一个tab,用户可以切换tab访问之前加载过的页面,且不会重新加载。真就产品一句话…… Github上有轮子了吗 Github上开箱即用的轮子是基于react-router-dom V5实现的ÿ…...

go-kratos 学习笔记(7) 服务发现服务间通信grpc调用
服务发现 Registry 接口分为两个,Registrar 为实例注册和反注册,Discovery 为服务实例列表获取 创建一个 Discoverer 服务间的通信使用的grpc,放到data层,实现的是从uses服务调用orders服务 app/users/internal/data.go 加入 New…...

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

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

Unity + Hybridclr + Addressable + 微信小程序 热更新报错
报错时机: Generate All 怎么All 死活就是报错 生成微信小程序,并启动后 报错内容: MissingMethodException:AoT generic method notinstantiated in aot.assembly:Unity.ResourceManager:dll, 原因: Hybridclr 开发文档 解…...

鸿蒙开发—黑马云音乐之Music页面
目录 1.外层容器效果 2.信息区-发光效果 3.信息区-内容布局 4.播放列表布局 5.播放列表动态化 6.模拟器运行并配置权限 效果: 1.外层容器效果 Entry Component export struct MuiscPage {build() {Column() {// 信息区域Column() {}.width(100%)// .backgroun…...

IsaacLab | 如何在Manipulation任务中添加新的目标(target)
如是我闻: 终于让我给摸索出来了,在这里描述一下问题场景。 假使说我们有一个机械臂操作的任务,这样婶的 Isaac Lab | Push 我们想做多目标的任务,这时候需要向环境中添加第二个目标,像这样 Isaac Lab | Add target 那…...

【Python从入门到进阶】61、Pandas中DataFrame对象的操作(二)
接上篇《60、Pandas中DataFrame对象的操作(一)》 上一篇我们讲解了DataFrame对象的简介、基本操作及数据清洗相关的内容。本篇我们来继续讲解DataFrame对象的统计分析、可视化以及数据导出与保存相关内容。 一、DataFrame的统计分析 在数据分析和处理中…...

Linux(虚拟机)的介绍
Linux介绍 常见的操作系统 Windows:微软公司开发的一款桌面操作系统(闭源系统)。版本有dos,win98,win NT,win XP , win7, win vista. win8, win10,win11。服务器操作系统:winserve…...

CSS(九)——CSS 轮廓(outline)
CSS 轮廓(outline) 轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。 轮廓(outline)属性指定元素轮廓的样式、颜色和宽度。 让我们用一个图来看…...

Unity Timeline:构建复杂动画序列的利器
Unity的Timeline是一个强大的动画工具,它允许开发者创建复杂的动画序列,将动画、音频和事件整合到一个统一的时间轴上。Timeline的可视化编辑界面使得动画制作变得更加直观和灵活。本文将介绍Unity Timeline的基本概念、功能以及如何使用它来实现动画。 …...

C# 与C++ cli
cli CLI(Command Line Interface)是一种通过命令行界面与计算机系统进行交互的方式。它提供了一种以文本形式输入命令和接收系统输出的方法,用于执行各种操作和管理计算机系统。以下是CLI的详细解释: 一、定义与基本概念 定义&…...

Linux文件编程--打开及创建
...

Vue3点击按钮实现跳转页面并携带参数
前提:有完整的路由规则 1.源页面 <template><div><h1>源页面</h1><!--通过js代码跳转--><template #default"scope"><button click"toTargetView(scope.row)">点击跳转携带参数</button><…...