Redis 快速搭建与使用
文章目录
- 1. Redis 特性
- 1.1 多种数据类型支持
- 1.2 功能完善
- 1.3 高性能
- 1.4 广泛的编程语言支持
- 1.5 使用简单
- 1.6 活跃性高/版本迭代快
- 1.7 I/O 多路复用模型
- 2. Redis发展历程
- 3. Redis 安装
- 3.1 源码安装
- 3.1.1 下载源码包
- 3.1.2 解压安装包
- 3.1.3 切换到 Redis 目录
- 3.1.4 编译安装
- 3.2 Docker 安装
- 3.2.1 拉取 Reids 镜像
- 3.2.2 运行 Redis 容器
- 3.2.3 执行命令
- 3.3 在线安装
- 4. Redis 使用
- 4.1 启动 Redis
- 5. Redis Desktop Manager
Redis 是由 C 语言开发的开源内存数据存储器,经常被用作数据库、缓存以及消息队列等。 Redis 因为其强大的功能和简洁的设计,深受广大开发者和公司的喜爱,几乎占领了内存数据库市场的所有份额。
1. Redis 特性
Redis 有很多优秀的特性,这也是它最受欢迎的原因。
1.1 多种数据类型支持
Redis 支持多种数据类型,例如字符串、散列、列表、集合、有序集合、HyperLogLog、流、地理坐标等,每种类型都有对应的使用场景,同时也满足了所有开发者的需要。
1.2 功能完善
Redis 提供了很多的功能,例如消息队列、自动过期删除、事务、数据持久化、分布式锁、附近的人、慢查询分析、Sentinel 和集群等多项功能。
1.3 高性能
Redis 是一款内存型数据库,因此在性能方面有天生的优势(内存操作比磁盘操作要快很多),并且 Redis 在底层使用了更加高效的算法和数据结构,以最大限度的提高了 Redis 的性能。
1.4 广泛的编程语言支持
Redis 客户端有众多的开发者提供了相应的支持,这些客户端可以在 https://redis.io/clients 上找到,支持是编程语言,如下图所示:
可以看出几乎所有的编程语言,都有相应的客户端支持。
1.5 使用简单
Redis 的 API 虽然比较丰富,但操作的方法都非常的简便,并且需要传递的参数也不多,这样开发者就能更快的上手使用,而且 Redis 官方也提供了比较完整的说明文档。
1.6 活跃性高/版本迭代快
Redis 活跃度很高,这点可以在 Redis 的开源项目 https://github.com/antirez/redis 中发现,并且 Redis 的版本迭代也很快,到目前为止 Redis 的发布版本就已经有二百多个了。
1.7 I/O 多路复用模型
Redis 使用了多路 I/O 复用模型,“多路”指的是多个网络连接,“复用”指的是复用同一个线程,采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求,这样就减少了创建和销毁线程所带来的时间消耗,从而到达高效处理大量并发请求的目的。
2. Redis发展历程
Redis 的发展大概经过了以下几个过程:
- 2009 年 5 月发布 Redis 初始版本;
- 2012 年发布 Redis 2.6,重构了大量的核心代码,去掉了所有和集群相关的代码;
- 2013 年 11 月发布 Redis 2.8,增加了部分主从复制功能;
- 2015 年 4 月发布 Redis 3.0,增加了集群功能;
- 2017 年 7 月发布 Redis 4.0 ,优化了复制功能和新增了混合持久化;
- 2018 年 10 月发布 Redis 5.0,增加了 Stream 数据类型;
- 2020 年 3-5 月计划发布 Redis 6.0 稳定版。
3. Redis 安装
Redis 官方提供了 Linux 和 MacOS 服务端安装包,对于 Windows 还有提供正式的支持,之所以不支持 Windows 平台是因为目前 Linux 版本已经很稳定,并且也有大量的用户,如果开发 Windows 版本可能会带来很多的兼容性问题,但 Windows 平台还是有很多种方法可以安装 Redis 的,本文的下半部分会说到,我们先来看 Redis 在 Linux 和 MacOS 平台的安装。
3.1 源码安装
3.1.1 下载源码包
进入网址:https://redis.io/download 选择需要安装的版本,点击 Download 按钮
3.1.2 解压安装包
使用命令:tar zxvf redis-5.0.7.tar.gz
3.1.3 切换到 Redis 目录
使用命令:cd /usr/local/redis-5.0.7/
3.1.4 编译安装
使用命令:sudo make install 安装完成,如下图所示:
如果没有异常信息输出,向上图所示,则表示 Redis 已经安装成功。
3.2 Docker 安装
Docker 的使用前提是必须先有 Docker,如果本机没有安装 Docker,对于 Linux 用户来说,可使用命令 yum -y install docker 在线安装 docker,如果是非 Linux 平台需要在官网下载并安装 Docker Desker,下载地址:https://docs.docker.com/get-started/
选择相应的平台,下载安装即可。 有了 Docker 之后,就可以在 Docker 上安装 Redis 服务端了,具体步骤如下:
3.2.1 拉取 Reids 镜像
使用命令:docker pull redis
如果要安装其他版本的 Redis,可使用 docker pull redis
: 版本号 的方式来安装。
3.2.2 运行 Redis 容器
使用命令:docker run –name myredis -d -p 6379:6379 redis
其中:
- –name:设置别名
- -p:映射宿主端口到容器端口
- -d:表示后台运行
执行完成后截图如下:
如图所示,则证明 Redis 已经正常启动了。 如果要查询 Redis 的安装版本,可遵循下图的执行流程,先进入容器,在进入 Redis 的安装目录,执行 redis-server -v 命令,如图如下:
3.2.3 执行命令
Docker 版的 Redis 命令执行和其他方式安装的 Redis 不太一样,所以这里需要单独讲一下,我们要使用 redis-cli 工具,需要执行以下命令:docker exec -it myredis redis-cli
其中“myredis”指的是容器中 Redis 服务端的别名。
3.3 在线安装
在线安装的执行步骤最简单,只需要执行 xxx install redis 命令即可直接安装,例如 MacOS 使用 brew install redis 、Ubuntu 使用 apt-get install redis 、CentOS 使用 yum install redis 等。
上面我们提到了,官方并没有提供 Windows 的支持版本,但 Windows 平台依旧有很多种方法,可以用来安装 Redis 服务端,例如 Docker 方式、虚拟机方式、Windows 10 子系统方式和第三方提供的 Redis 版本等。
其中 Docker 方式和本文上半部分介绍的安装方式相同,这里就不再赘述,当然你也可以使用虚拟机安装 Linux 的方式,或者是使用 Windows 10 下的自带的 Linux 子系统的方式进行安装。
如果你还想要更简单的方式,就可以使用第三方提供的 Redis 安装包进行安装,例如可以使用微软官方支持并维护的一个 Win64 的 Redis 开源项目,目前支持的最新版本为 3.2,项目地址:https://github.com/MicrosoftArchive/redis/releases 下载 .msi 和 .zip 文件安装即可。
4. Redis 使用
Redis 安装完之后,在 src 目录和 /usr/local/bin 目录下有几个很重要的可执行文件,这些可执行文件可以做很多事,如下表所示:
可执行文件 | 功能 |
---|---|
redis-server | 启动 Redis |
redis-cli | Redis 命令行工具 |
redis-benchmark | 基准测试工具 |
redis-check-aof | AOF 持久化文件检测工具和修复工具 |
redis-check-dump | RDB 持久化文件检测工具和修复工具 |
redis-sentinel | 启动 redis-sentinel |
4.1 启动 Redis
下面我们就用可执行文件 redis-server 来启动 Redis 服务器,我们在 Redis 的安装目录执行 src/redis-server 命令就可以启动 Redis 服务了,如下图所示:
可以看出 Redis 已经正常启动了,但这种启动方式,会使得 Redis 服务随着控制台的关闭而退出,因为 Redis 服务默认是非后台启动的,我们需要修改配置文件(redis.conf),找到 daemonize no 改为 daemonize yes ,然后重启服务,此时 Redis 就是以后台运行方式启动了,并且不会随着控制台的关闭而退出。
daemonize 配置如下:
5. Redis Desktop Manager
Redis Desktop Manager安装和使用
https://pan.baidu.com/s/14sIDsXNdjpRGvkoBwhZepg?pwd=fddy
相关文章:

Redis 快速搭建与使用
文章目录 1. Redis 特性1.1 多种数据类型支持1.2 功能完善1.3 高性能1.4 广泛的编程语言支持1.5 使用简单1.6 活跃性高/版本迭代快1.7 I/O 多路复用模型 2. Redis发展历程3. Redis 安装3.1 源码安装3.1.1 下载源码包3.1.2 解压安装包3.1.3 切换到 Redis 目录3.1.4 编译安装 3.2…...
SpringBoot集成etcd,实现实时监听,实现配置中心
etcd 是一个分布式键值对存储,设计用来可靠而快速的保存关键数据并提供访问。通过分布式锁,leader选举和写屏障(write barriers)来实现可靠的分布式协作。etcd集群是为高可用,持久性数据存储和检索而准备。 以下代码实现的主要业务是…...

JavaScript元素根据父级元素宽高缩放
/*** 等比缩放* param wrap 外部容器* param container 待缩放的容器* returns {{width: number, height: number}}* 返回值:width:宽度, height:高度*/aspectRatio(wrap: any, container: any) {// w h / ratio, h w * ratioconst wrapW wrap.width;const wrapH…...

易趋产品升级(EasyTrack 11_V1.3) | 集成飞书、WPS、个性化设置,增强团队协作和用户体验
企业在项目管理过程中,经常会遇到项目信息同步不及时、沟通障碍以及管理软件使用不便捷等难题,导致团队协作效率低下。这种情况下,如果使用了多个办公软件(如:钉钉、企业微信、项目管理软件等),…...

帆软FineBi V6版本经验总结
帆软FineBi V6版本经验总结 BI分析出现背景 现在是一个大数据的时代,每时每刻都有海量的明细数据出现。这时大数据时代用户思维是:1、数据的爆炸式增长,人们比起明细数据,更在意样本的整体特征、相互关系。2、基于明细的“小…...

03.MySQL的体系架构
MySQL的体系架构 一、MySQL简介二、MySQL的体系架构三、MySQL的内存结构四、MySQL的文件结构 一、MySQL简介 MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,后被Sun公司收购,Sun公司被Oracle…...
随笔笔记-2023
随笔 computed 是基于他们的依赖进行缓存的,。如果要随时计算 new Date().now(因为不是响应式的),那么需要用 computed。 如果不希望用缓存那么就用 methods 字符与字节 1 字节8 位1B8 bit;1KB 1024B,1MB1024KB1024*1024B 编码:…...
2023.12.31 Python 词频统计
练习:使用Python中的filter、map、reduce实现词频统计 样例数据: hello world java python java java hadoop spark spark python 需求分析: 1- 文件中有如上的示例数据 2- 读取文件内容。可以通过readline() 3- 将一行内容切分得到多个单…...

day12--java高级编程:网络通讯
5 Day19–网络通信(Socket通信) 说明: io流是跟本地的文件进行数据的传输,读或者写。网络通信:数据在网络中进行的传输。 本章专题与脉络 1. 网络编程概述 Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持&…...
MongoDB聚合:$out
$out阶段将聚合管道产生的文档写入到指定的集合,从MongoDB4.4开始,支持指定数据库。$out阶段必须放在聚合管道的最后,支持聚合结果任意大小的数据集。 警告: 如果指定的集合已经存在则会被替换。 语法 用法 1: 定数…...
一次奇葩的spin_lock_irq / spin_unlock_irq使用不当导致的系统卡死分析
这是在调试内核block层时遇到的一例奇葩的soft lock锁死问题(内核版本centos 8.3,4.18.0-240),现场如下: [ 760.247152] watchdog: BUG: soft lockup - CPU#0 stuck for 23s! [kworker/0:1:2635]……………..[ 760.247184] CPU: 0 PID: 26…...

公司创建百度百科需要哪些内容?
一个公司或是一个品牌想要让自己更有身份,更有知名度,更有含金量,百度百科词条是必不可少的。通过百度百科展示公司的详细信息,有助于增强用户对公司的信任感,提高企业形象。通过百度百科展示公司的发展历程、领导团队…...

qt中信号槽第五个参数
文章目录 connent函数第五个参数的作用自动连接(Qt::AutoConnection)直接连接(Qt::DirectConnection - 同步)同线程不同线程 队列连接(Qt::QueuedConnection - 异步)同一线程不同线程 锁定队列连接(Qt::BlockingQueuedConnection) connent函数第五个参数的作用 connect(const …...

模式识别与机器学习-SVM(线性支持向量机)
线性支持向量机 线性支持向量机间隔距离学习的对偶算法算法:线性可分支持向量机学习算法线性可分支持向量机例子 谨以此博客作为复习期间的记录 线性支持向量机 在以上四条线中,都可以作为分割平面,误差率也都为0。但是那个分割平面效果更好呢࿱…...

【并行计算】GPU,CUDA
一、CUDA层次结构 1.kernel核函数 一个CUDA程序是一个kernel核函数被GPU的多个计算单元并行执行的过程,CUDA给了如下抽象 dim3 threadsPerBlock(4, 3, 1); dim3 numBlocks(3, 2, 1); matrixAdd<<<numBlocks, threadsPerBlock>>>(A, B, C); 2.G…...
计算机网络教案——计算机网络设备章节
第五章 计算机网络设备 一、教学目标: 1. 了解计算机网络的主要设备 2. 了解计算机网络设备的主要原理 3. 掌握计算机网络设备的基本用途 4. 掌握计算机网络设备的使用常识 二、教学重点、难点 计算机网络设备的主要原理 三、技能培训重点、难点 计算机网络设备的使用…...
什么是SLAM中的回环检测,如果没有回环检测会怎样
目录 什么是回环检测 如果没有回环检测 SLAM(Simultaneous Localization and Mapping,即同时定位与地图构建)是一种使机器人或自动驾驶汽车能够在未知环境中建立地图的同时定位自身位置的技术。回环检测(Loop Closure Detectio…...
ubuntu 通过文件设置静态IP、DNS、网关
1. 确定网络接口名称 首先,使用 ip a 命令确定您要配置的网络接口名称。 2. 编辑 Netplan 配置文件 使用文本编辑器(如 nano)打开或创建 Netplan 配置文件: sudo nano /etc/netplan/01-netcfg.yaml3. 输入 Netplan 配置 在编…...

mapboxgl 中热力图的实现以及给热力图点增加鼠标移上 popup 效果
文章目录 概要效果预览技术思路技术细节小结 概要 本篇文章还是关于最近做到的 mapboxgl 地图展开的。 借鉴官方示例:https://iclient.supermap.io/examples/mapboxgl/editor.html#heatMapLayer 效果预览 技术思路 将接口数据渲染到地图中形成热力图。还需要将热…...

golang并发安全-sync.map
sync.map解决的问题 golang 原生map是存在并发读写的问题,在并发读写时候会抛出异常 func main() {mT : make(map[int]int)g1 : []int{1, 2, 3, 4, 5, 6}g2 : []int{4, 5, 6, 7, 8, 9}go func() {for i : range g1 {mT[i] i}}()go func() {for i : range g2 {mT[…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...