Linux下Redis的安装与使用

Linux下Redis的安装与使用

博客: www.lstar.icu

开源地址
Gitee 地址: https://gitee.com/lxwise/iris-blog_parent
Github 地址: https://github.com/lxwise/iris-blog_parent

序言

Redis‌是一个开源的内存数据结构存储系统,使用‌[ANSI C语言](https://www.baidu.com/s?wd=ANSI C语言&usm=1&ie=utf-8&rsv_pq=f75bf0a100b3c97e&oq=redis介绍&rsv_t=edd9fy2Dqjz%2F2ETQraAeVn3qE%2FCkecAjfpX0I8PUPmwkXR%2F0D%2BI5EpxZi38&sa=re_dqa_generate)编写,支持网络,可基于内存亦可持久化的日志型Key-Value数据库,并提供多种语言的API。Redis由‌VMware主持开发,自2010年3月15日起由VMware负责维护。

Redis的主要特点

  • 高性能‌:Redis使用内存存储数据,读写速度极快,官方测试数据显示,读的速度可达110000次/秒,写的速度可达81000次/秒。
  • 多种数据类型‌:支持字符串(String)、哈希(Hash)、列表(List)、集合(Set)、有序集合(Sorted Set)等多种数据类型。
  • 原子性操作‌:所有操作都是原子性的,支持对多个操作的原子性执行。
  • 持久化‌:支持‌RDB(Redis Database)和AOF(Append Only File)两种持久化机制,确保数据在服务器停机后不会丢失。
  • 主从同步‌:支持主从同步,数据可以从主服务器向任意数量的从服务器同步,实现数据冗余和读取操作的可扩展性。

Redis的应用场景

  • 缓存‌:将频繁访问的数据存储在Redis中,提高读取速度,降低数据库负载。
  • 实时计算‌:用于需要实时变化和展示的功能,如消息队列、实时聊天系统等。
  • 计数器‌:记录帖子点赞数、点击数、评论数等。

1.安装环境初始化

1.1 检查系统是否残留redis数据

redis等数据相关中间件安装前一定要进行残留数据检查,排除后期存在的各种隐患。

#检查有没有残留客户端
whereis redis-cli
#检查有没有残留服务
whereis redis-server

如果有请先卸载,避免后续问题

1.2 卸载Redis

1.2.1停止Redis服务

#查看Redis服务进行
ps -ef | grep redis
#停止Redis服务
redis-cli -a 123456 -p 6379 shutdown
#再次查看Redis服务进程
ps -ef | grep redis

1.2.2删除Redis相关文件

删除/usr/local/bin目录下与Redis相关的文件

#查找Redis相关的文件
ls -l /usr/local/bin/redis-*
#删除Redis相关的文件
rm -rf /usr/local/bin/redis-*
#再次查找Redis相关的文件

卸载Redis共分为两步,关闭Redis进程后删除Redis的相关文件。注意:这里Redis相关文件的目录是默认目录,如果安装Redis时指定了安装目录,请更换为自己的安装目录。

2.单机安装Redis

通过网页下载,上传到服务器

下载地址: https://download.redis.io/releases/或https://github.com/tporadowski/redis/releases?page=1

2.1.安装Redis依赖

Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖:

yum install -y gcc tcl

2.2.上传安装包并解压

解压缩:

tar -xzf redis-6.2.6.tar.gz

进入redis目录:

cd redis-6.2.6

运行编译命令:

make && make install

如果没有出错,应该就安装成功了。

默认的安装路径是在 /usr/local/bin目录下:

cd /usr/local/bin-rwxr-xr-x. 1 root root    2363 47 2024 pcre-config
-rwxr-xr-x. 1 root root  100040 47 2024 pcregrep
-rwxr-xr-x. 1 root root  197504 47 2024 pcretest
-rwxr-xr-x. 1 root root 4829496 1022 07:09 redis-benchmark
lrwxrwxrwx. 1 root root      12 1022 07:09 redis-check-aof -> redis-server
lrwxrwxrwx. 1 root root      12 1022 07:09 redis-check-rdb -> redis-server
-rwxr-xr-x. 1 root root 5003776 1022 07:09 redis-cli
lrwxrwxrwx. 1 root root      12 1022 07:09 redis-sentinel -> redis-server
-rwxr-xr-x. 1 root root 9518904 1022 07:09 redis-server

该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令。其中:

  • redis-cli:是redis提供的命令行客户端
  • redis-server:是redis的服务端启动脚本
  • redis-sentinel:是redis的哨兵启动脚本

2.3.启动

redis的启动方式有很多种,例如:

  • 默认启动
  • 指定配置启动
  • 开机自启

2.3.1.默认启动

安装完成后,在任意目录输入redis-server命令即可启动Redis:

redis-server

这种启动属于前台启动,会阻塞整个会话窗口,窗口关闭或者按下CTRL + C则Redis停止。不推荐使用。

2.3.2.指定配置启动

如果要让Redis以后台方式启动,则必须修改Redis配置文件,就在我们之前解压的redis安装包下(/opt/redis/redis-6.2.6),名字叫redis.conf:

我们先将这个配置文件备份一份:

cp redis.conf redis.conf.bck

然后修改redis.conf文件中的一些配置:

# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes 
# 密码,设置后访问Redis必须输入密码
requirepass 123456

Redis的其它常见配置:

# 监听的端口
port 6379
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1个库,默认有16个库,编号0~15
databases 16
# 设置redis能够使用的最大内存
maxmemory 256mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"

启动Redis:

# 进入redis安装目录 
cd /usr/local/src/redis-6.2.6
# 启动
redis-server redis.conf

停止服务:

# 利用redis-cli来执行 shutdown 命令,即可停止 Redis 服务,
# 因为之前配置了密码,因此需要通过 -u 来指定密码
redis-cli -u 123456 shutdown

2.3.3.开机自启

我们也可以通过配置来实现开机自启。

首先,新建一个系统服务文件:

vi /etc/systemd/system/redis.service

内容如下:

[Unit]
Description=redis-server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /opt/redis/redis-6.2.6/redis.conf
PrivateTmp=true[Install]
WantedBy=multi-user.target

然后重载系统服务:

systemctl daemon-reload

现在,我们可以用下面这组命令来操作redis了:

# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis

执行下面的命令,可以让redis开机自启:

systemctl enable redis

3.Redis客户端

安装完成Redis,我们就可以操作Redis,实现数据的CRUD了。这需要用到Redis客户端,包括:

  • 命令行客户端
  • 图形化桌面客户端
  • 编程客户端

3.1.Redis命令行客户端

Redis安装完成后就自带了命令行客户端:redis-cli,使用方式如下:

redis-cli [options] [commonds]

其中常见的options有:

  • -h 127.0.0.1:指定要连接的redis节点的IP地址,默认是127.0.0.1
  • -p 6379:指定要连接的redis节点的端口,默认是6379
  • -a 123456:指定redis的访问密码

其中的commonds就是Redis的操作命令,例如:

  • ping:与redis服务端做心跳测试,服务端正常会返回pong

不指定commond时,会进入redis-cli的交互控制台:

3.2.图形化桌面客户端

GitHub上的大神编写了Redis的图形化桌面客户端,地址:https://github.com/uglide/RedisDesktopManager

不过该仓库提供的是RedisDesktopManager的源码,并未提供windows安装包。

在下面这个仓库可以找到安装包:https://github.com/lework/RedisDesktopManager-Windows/releases

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实体类中为什么要实现serializable接口

最近见到好多项目中写的代码,在实体类中实现了Serializable接口。说实话:这个在以前学习的时候,貌似学过,但是一直没有用过,所以看着一脸懵逼,但是别人总不可能随便写的吧.....所以就去查了一下这个接口。 …

D55【python 接口自动化学习】- python基础之模块与标准库

day55 练习:实现求导 学习日期:20241101 学习目标:模块与标准库 -- 70 小试牛刀:如何使用Python为函数求导? 学习笔记: 需求分析 使用第三方模块实现函数求导 编写程序并测试 # 求导 from sympy import…

推荐一款功能强大的AI实时变声器:FliFlik Voice Changer

FliFlik VoiCE Changer是一款专注于声音变换与音频处理的创新软件,旨在满足从日常娱乐、游戏直播到播客制作、专业音频编辑的多种应用场景需求。无论是想在游戏中变换声音逗乐队友,还是在播客中塑造个性化的音效,这款软件都能提供灵活而强大的…

Spring Boot技术栈:打造大学城水电管理系统

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

2024 IC行业还能不能入了?

打个有趣的比方,18年以前入行IC的,就业前就知道或者就业后才知道,是去吃席只不过是“农村酒席”,但不至于吃坏肚子。对于这种阵仗,不是每个人都愿意去的,即便是在西电这样的院校,当年也有一些同…

基于双向长短期记忆网络(BiLSTM)的时间序列数据预测,15个输入1个输出,可以更改数据集,MATLAB代码

1. 数据收集与预处理 数据清洗:处理缺失值、异常值等。特征工程:提取有助于预测的特征。数据标准化:将时间序列数据标准化,使其具有零均值和单位方差,有助于模型训练。滑动窗口划分:将时间序列数据划分为多…

基于Python可视化的热门微博数据分析系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的热…

推荐一款非常好用的3d设计软件:LuBan 3D

LuBan 3D是一款非常好用的3d设计软件,这款软件提供独特的3D的模型以及设计的理念,还可以自动为用户处理像三角形OBJ,PLY等网格模型。 基本简介 LuBan 3D是一款非常小巧但是功能十分强大的生成式设计软件。这款软件对于设计师和制作们来说非常…

Comfyui-Flux写实人像摄影风格探索

在一些小伙伴的建议下,我最近开始着手整理ComfyUI的相关内容。其实之前就一直在关注这个工具,但由于工作繁忙,一直没能抽出时间去总结。 与SD webui不同的是,comfyui有着极高的自由度和灵活性,支持高度的定制化和工作流复用&#…

qt QPicture详解

1、概述 QPicture类是Qt框架中的一个重要图形类,它主要用于记录和回放QPainter的绘图指令。这个类能够跨平台、无分辨率依赖地绘制图形,非常适合用于实现打印预览和图像操作等场景。QPicture可以将绘图操作序列化为一种独立于平台的格式,保存…

Axure使用动态面板制作新闻栏目高级交互

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:使用动态面板制作新闻栏目 主要内容:动态面板State切换、控制;动态面板滚动设置;设置选中 应用场景&#xff1a…

Jupyter lab 打开时默认使用 Notebook 而不是浏览器

Jupyter lab 打开时默认使用 Notebook 而不是浏览器 正文 正文 今天遇到了一个特别有意思的事情,这里我们以 Windows \textrm{Windows} Windows 系统举例。 我们知道通常我们需要使用如下代码在 Terminal \textrm{Terminal} Terminal 中打开 Jupyter lab \textr…

h5小游戏5--杀死国王(附源码)

源代码如下 1.游戏基本操作 用空格键攻击,kill the king。 css样式源码 charset "UTF-8";font-face {font-family: "AddLGBitmap09";src: url("https://assets.codepen.io/217233/AddLGBitmap09.woff2") format("woff2"…

HtmlAgilityPack 操作详解

目录 1.安装 HtmlAgilityPack 2. 示例 HTML 3. 使用 HtmlAgilityPack 进行 HTML 解析与操作 4. 代码详解 1.加载html文档 2.选择元素 3. 提取属性 4.修改属性 5.常用的几种获取元素的 XPath 写法 HtmlAgilityPack: 轻量且高效,适合进行常规的 H…

图形学常识 | RVT和图像处理

目录 Runtime virtual texture 实时虚拟纹理RVT RVT应用1: 引擎中开启Virtual Texture support vLevel floor[F d(uv)/dx, d(uv)/dy) Random(-0.25,0.25)] RVT的应用2 svt和rvt的区别 双线性过滤和三线性过滤的区别 UE的PixelNormalWS节点 数字图像处理 …

操作符详解

操作符也被叫做&#xff1a;运算符。 操作符的分类 算术操作符&#xff1a; 、- 、* 、/ 、%赋值操作符&#xff1a; 、 、 - 、 * 、 / 、% 、<< 、>> 、& 、| 、^移位操作符&#xff1a;<< >>位操作符&#xff1a;& | ^ ~单目操作符&#…

7、lvm逻辑卷和磁盘配额

lvm逻辑卷概念 lvm基本概念 Lvm 是 Logical Volume Manager 的简称&#xff1a;逻辑卷管理Linux系统下管理硬盘分区的一种机制。lvm适合于管理大存储设备。用户可以动态的对硬盘进行扩容&#xff08;缩容&#xff09;。我们只关心使用层面&#xff0c;对于物理底层&#xff0…

WebGPU跨平台应用开发

对于 Web 开发人员来说&#xff0c;WebGPU 是一个 Web 图形 API&#xff0c;可提供对 GPU 的统一和快速访问。WebGPU 公开了现代硬件功能&#xff0c;并允许在 GPU 上进行渲染和计算操作&#xff0c;类似于 Direct3D 12、Metal 和 Vulkan。 虽然这是真的&#xff0c;但这个故事…

Java项目实战II基于Java+Spring Boot+MySQL的智能推荐的卫生健康系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 基于Java、…

DDR Study - PIM Technical

参考来源&#xff1a;In-memory processing - Wikipedia&#xff0c;What is processing in memory (PIM) and how does it work? (techtarget.com)&#xff0c;《Processing-in-memory: A workload-driven perspective》 LPDDR Initial → LPDDR Write Leveling and DQ Train…