Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

这篇具有很好参考价值的文章主要介绍了Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署
目录

前言

Redis 中文网站:http://redis.cn/

Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件

它支持多种类型的数据结构,如字符串(strings)散列(hashes)列表(lists),集合(sets),有序集合(sorted sets)与范围查询,位图(bitmaps),基数计算算法(hyperloglogs) 地理空间(geospatial) 索引半径查询

Redis 内置了 复制(replication),LUA脚本(Lua scripting),LRU 驱动事件(LRU eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过 Redis 哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)

为什么会出现 Redis?

磁盘、内存

磁盘在寻址上花费的时长是毫秒 ms 级别的,带宽是 G/M 级别

内存在寻址上花费的时长是纳秒 ns 级别的,带宽比较大,按 T 级别来算的

基于以上,内存在寻址上比磁盘快了 10W 倍

I/O buffer

成本问题:
1、磁盘、磁道、扇区,一个扇区:512 字节带来成本很大问题
2、操作系统索引以 4K 为单位,无论你读取多少数据,都至少是 4K 为单位从磁盘中拿

数据库

表数据量很大,会导致性能极速下降

若表中有索引,增删改很慢,查询速度缓慢会有以下两个维度影响
1、1 个或少量的查询语句依然很快,查询的数据量较少或频次很低
2、当查询的并发量大时会受到磁盘带宽影响,从而就会影响到查询的速度

数据库对比
官网:https://db-engines.com/en/ranking,可以在该网站上看看每年各个数据库之间的排名以及使用频率情况

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

基于企业级开发,经常会使用 MySQL 关系型数据库,它是基于磁盘的,若并发量或数据量上来时,它会极其影响 DML 语句操作速度;在这种情况发展到极端只有使用 SAP HANA 内存级别的关系型数据库才能扛住,原本在磁盘 2T 数据量而它的内存数据库中会被优化后压缩成 1T 多数据量进行处理,但这种内存级别数据库并不是一般的公司能用得起,一般公司都是想成本越低越好

基于此,也就有了一个折中的方案,数据持久化在库中,数据的可视化交由给缓存处理,最开始出现的缓存中间件 > Memcached

缓存中间件

一般都会用 Memcached、Redis 这两种缓存中间件来进行比较,它们都是基于 Key-Value 键值对方式存储的

MongoDB 就与它们区分开了,它是基于 Document 存储的,它主要用来作文章内容、文本存储的

Memcached、Redis

  1. Memcached Value 没有类型的概念,而 Redis Value 有多种数据类型,string(内置:bitmap、字符类型、数值类型)、hashes、lists、sets、sorted sets
  2. Memcached 不支持持久化,而 Redis 支持多种持久化方式,AOF、RDB、两者混合模式
  3. Memcached Value 支持 1MB 大小,而 Redis 支持 1GB 大小

安装

在上面简单介绍了 Redis 是什么,以及 Redis 由来,从不同层面上介绍 Redis 的好处,即使说 Redis 已经这么好用了,但它内部还不断在优化,比如:Redis6 在 Redis5 基础上引入了多线程模型,我们先来说说它在这方面优化后会带来哪些好处?

  1. 并发处理能力:Redis6 多线程模型在处理 I/O 操作时可以利用多个线程,提高了并发处理的能力;而 Redis 单线程模型下,在处理客户端请求时只使用了单线程,因此在并发处理能力上相对较低

Redis 多线程模型只涉及到 I/O 操作的处理,核心的数据处理仍然是单线程的

  1. 多核利用:Redis6 多线程模型下能更好地利用多核处理器性能;通过使用多个线程,可以同时处理多个客户端请求,提高系统的整体吞吐量;而 Redis 单线程模型下只能使用单个核心,无法充分利用多核处理器的优势
  2. 响应时间:由于 Redis6 多线程模型能够并发处理多个请求,因此在高并发的负载之下,它能够提供更低的响应时间;而 Redis 单线程模型下在高并发情况下可能会出现较高的响应时间,因为所有的客户端请求都必须在单个线程上依此之下

简单介绍过后,我们在本文中会同时告知如何在 Linux 机器上安装 Redis5、Redis6,因为在安装时,两者会出现不同的问题

提前准备一台本地虚拟机或云服务器,安装包所在目录:/home/software
虚拟机版本(cat /etc/redhat-release):CentOS Linux release 7.9.2009 (AltArch)

Redis 安装包下载地址
redis-5.0.8.tar.gz、redis-6.0.6.tar.gz

Redis5

安装 wget 命令 > yum install wget

1、下载 5.0.8 安装包:wget http://download.redis.io/releases/redis-5.0.8.tar.gz

2、解压安装包:tar xf redis-5.0.8.tar.gz(v 参数会触发 IO,故不写)

3、可仔细阅读 redis-5.0.8 目录下 > README.md 文件

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

4、编译安装>生成可执行程序:cd redis-5.0.8 && make install && cd src

1、安装时会提示编译失败:缺少 gcc 依赖,C 语言环境(GUN C 是 Linux 中规定的 C 语言标准)
yum-config-manager --save --setopt=mysql57-community.skip_if_unavailable=true
yum install gcc
2、然后再执行:make distclean 后再 make install && cd src
3、编译的最后会出现:cannot find -latomic 错误因为我使用 Mac M1 系统 > aarch64 架构,它会在 Makefile 文件中去校验,故编辑该文件,将这部分内容注释掉,若你非该架构,可无须关注这步操作
4、然后再执行:make distclean 后再 make install && cd src ,最终,安装成功了,生成了可执行的程序

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

make install 只会在你的系统中安装二进制文件,但不会配置 init 脚本和配置文件放在适当的位置上
1、一个物理机器中可以有多个 Redis 实例(进程)通过 port 区分
2、可执行程序只存在一份,但内存中未来的多个实例中需要各自的配置文件,持久化目录等
3、脚本会帮你启动、开机自启动!!

5、编译安装到指定位置:make PREFIX=/usr/local/redis5 install,将 redis-cli 更名为 redis5-cli,主要是为了作版本区分

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

6、配置系统变量:vim /etc/profile

REDIS5_HOME=/usr/local/redis5
PATH=$PATH:$REDIS5_HOME/bin

7、安装 Redis5,cd /home/software/redis-5.0.8/utils 后执行 ./install_server.sh,它会一步步提示你如何设置端口、配置文件、日志文件、数据文件

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署
8、最后,查看 Redis5 当前占用进程

ps -ef | grep redis5

Redis6

安装 wget 命令 > yum install wget

1、下载 6.0.6 安装包:wget http://download.redis.io/releases/redis-6.0.6.tar.gz

2、解压安装包:tar xf redis-6.0.6.tar.gz(v 参数会触发 IO,故不写)

3、可仔细阅读 redis-6.0.6 目录下 > README.md 文件

4、编译安装>生成可执行程序:cd redis-6.0.6 && make install && cd src

5、编译安装到指定位置:make PREFIX=/usr/local/redis6 install,将 redis-cli 更名为 redis6-cli,主要是为了作版本区分

6、配置系统变量:vim /etc/profile

REDIS6_HOME=/usr/local/redis6
PATH=$PATH:$REDIS6_HOME/bin

7、安装 Redis6,cd /home/software/redis-6.0.6/utils 后执行 ./install_server.sh,在 Redis6 会报如下错误:This systems seems to use systemd. Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!

编辑 vi install_server.sh 文件,将如下内容进行注释后保存,再执行脚本:

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

它会一步步提示你如何设置端口、配置文件、日志文件、数据文件,以 Redis5 port:56379 为例,那么 Redis6 port 自然而然会设置为 66369 了,错误❌:端口数量是有限制的,最多 65535 个,如下报错所示:

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

因此,将 Redis6 端口设置为 60379,最终:Redis6 安装成功!!!

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

8、最后,查看 Redis6 当前占用进程

ps -ef | grep redis6

使用

到此为止,Redis5、Redis6 都已经在 Linux 上安装成功了!!!

查看 redis5-cli、redis6-cli 帮助文档:

redis5-cli --help

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

redis6-cli --help

Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署

下面来介绍一下常用的 Redis 客户端操作命令吧!

  1. 连接主机名:redis5-cli -h、redis6-cli -h(未指定时,默认为 127.0.0.1)
  2. 连接端口:redis5-cli -p 56379、redis6-cli -p 60379(未指定时,默认为 6379)
  3. 连接时认证密码登录或登录后通过 auth 命令:redis5-cli -a(连接密码,默认不会指定)
  4. 连接指定库:在 Redis 分为 16 个库,0~15 > redis5-cli -n、redis6-cli -n

若你不知道进入到 Redis 客户端以后,该如何操作 get、set 命令,又或者是不知道 Redis 中提供的多种数据类型如何应用,请看如下:

  1. 连接:redis6-cli -p 60379 以后,输入 help 命令,打印如下:

127.0.0.1:60379> help
redis-cli 6.0.6
To get help about Redis commands type:
“help @<group>” to get a list of commands in <group>
“help <command>” for help on <command>
“help <tab>” to get a list of possible help topics
“quit” to exit

  1. help @group:指的就是以数据类型分组的意思,当你 help @string 它就把 string 数据类型相关的操作命令以及描述给你展示出来
127.0.0.1:60379> help @string

  APPEND key value
  summary: Append a value to a key
  since: 2.0.0

  BITCOUNT key [start end]
  summary: Count set bits in a string
  since: 2.6.0

  BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
  summary: Perform arbitrary bitfield integer operations on strings
  since: 3.2.0

  BITOP operation destkey key [key ...]
  summary: Perform bitwise operations between strings
  since: 2.6.0

  BITPOS key bit [start] [end]
  summary: Find first bit set or clear in a string
  since: 2.8.7

  DECR key
  summary: Decrement the integer value of a key by one
  since: 1.0.0
# ....... 更多内容
  1. help `command:指的就是具体的某一个具体的命令是要如何操作的,比如说怎么设置位图 > setbit
127.0.0.1:60379> help setbit 

  SETBIT key offset value
  summary: Sets or clears the bit at offset in the string value stored at key
  since: 2.2.0
  group: string

这下有了帮助文档,你该知道如何去巧妙应用好 Redis 了吧!!!

Redis 数据类型以 group 分组存在,每种数据结构下的不同操作都是一条 command 命令

总结

该篇博文是 Redis 专栏的开篇,不作过多的实践以及应用场景的描述,主要是介绍了 Redis 前生今世,为什么要出现 Redis?Redis6 比 Redis5 扩充了多线程模型好处在哪里,在生产环境中我们如何自己去安装 Redis5、Redis6;最后,简单介绍了一些连接 Redis 客户端时使用的命令以及在操作 Redis 客户端命令时如何使用帮助文档让我们快速掌握 Redis 命令操作!

有小伙伴可能会说到为什么不使用容器化部署的方式来构建 Redis,当然,使用容器化部署方便了我们不需要太多去专注这方面的知识;但是 Redis 单独使用服务器部署,它的好处就是降低了其他微服务对其使用及性能的影响,而且单独使用服务部署更方便我们可以掌握 Redis 内存以及其他持久化配置相关的东西,也不会因为 Redis 内存限制的大小影响到其他微服务的运行✅
内存不作任何设置时,它会动态的去进行扩容或压缩,这对我们的 Redis 服务极其不可靠
实属个人见解,有不同见地的小伙伴,可以在底下留言,大家一起讨论,互相进步哈!!

后续 Redis 专栏,会有更多理论+实战+图文的博文出来,敬请期待!!!

如果觉得博文不错,关注我 vnjohn,后续会有更多实战、源码、架构干货分享!

推荐专栏:Spring、MySQL,订阅一波不再迷路

大家的「关注❤️ + 点赞👍 + 收藏⭐」就是我创作的最大动力!谢谢大家的支持,我们下文见!文章来源地址https://www.toymoban.com/news/detail-500752.html

到了这里,关于Redis 实战:逐步指南,让你轻松在 Linux 上安装与部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • ChatGPT提示词指令大全调教指南,6个网站让你轻松玩转AI聊天机器人!

    ChatGPT 的火热程度大家都看在眼里。很多人都想知道 : 要想用好 ChatGPT 需要什么 Prompt 提示词、提问模板 经常想“要怎么才能让ChatGPT更好的回答问题” ? 其实 ChatGPT 的操作一点也不难 我觉得甚至不用特别专业的指导就可以去掌握它 你就当他是一个真人 然后和他对话就行了

    2024年02月06日
    浏览(11)
  • 【实战教程】ThinkPHP6分页功能轻松实现,让你的网站更高效!

    ThinkPHP是一款非常流行的PHP开发框架,其最新版本ThinkPHP6在性能和易用性方面都得到了很大的改善。分页功能是网页开发中非常常见的功能,而ThinkPHP6也提供了非常方便的分页方法。本文将介绍如何实现ThinkPHP6的分页功能。 一、了解分页功能 在Web应用程序中,当数据集非常庞

    2024年01月21日
    浏览(5)
  • 【linux】图文并茂,让你轻松掌握Linux基本指令

    【linux】图文并茂,让你轻松掌握Linux基本指令

    目录 一,前提 二, 在root身份下,管理用户 1.  whoami——判断身份  2. 创建用户 3. 销毁用户 三,文件增,删,移动指令  1. pwd——查看路径  2. ls ——打开当前目录  3. touch——创建文件  4. nano——打开文件  5. ls -l  ——以列表形式打印该目录下文件的属性​编辑  6. l

    2024年02月05日
    浏览(10)
  • 告别手动调度,海豚调度器 3.1.x 集群部署让你轻松管理多机!

    转载自第一片心意 由于海豚调度器官网的集群部署文档写的较乱,安装过程中需要跳转到很多地方进行操作,所以自己总结了一篇可以直接跟着从头到尾进行操作的文档,以方便后续的部署、升级、新增节点、减少节点的相关操作。 JDK:下载JDK (1.8+),安装并配置 JAVA_HOME 环

    2024年04月24日
    浏览(5)
  • Linux环境下 Redis的部署安装

    Linux环境下 Redis的部署安装

    目录 1、离线安装GCC 2、安装包上传解压 3、文件编译安装 5、Redis集群部署 5.1、redis节点 5.2、创建集群 安装redis需要gcc环境,先查看系统是否安装gcc( gcc --version ),若未安装gcc,则需要先安装。 Xshell里命令行切换到 /usr 目录 : cd /usr 创建 soft文件夹: mkdir soft 上传依赖包: 将

    2024年02月05日
    浏览(5)
  • 广告投放实战指南,让你的技术产品走向成功!

    广告投放实战指南,让你的技术产品走向成功!

    作为深耕智能客服领域多年的云客服厂商,美洽在开拓市场、品牌运营、获线转化等方面积累了一定的经验,并打造出了在线客服、呼叫中心、客服机器人、工单系统、语音机器人等智能客服全域产品矩阵,不仅为企业与客户的沟通提供了便利,更为企业实现“线索-营销-转

    2024年02月05日
    浏览(5)
  • Linux下安装部署redis(离线模式)

    Linux下安装部署redis(离线模式)

    1.下载redis的安装包 下载地址:Index of /releases/  大家可以自行选择redis的版本,笔者选择的是最新的 2.上传到服务器 前提是我先在服务器上创建了一个目录redis7.2.3,我直接上传到这个目录下 1.解压redis 2.移动解压完成的目录到/usr/local/下 3.进入到redis-7.2.3的目录 4.编译安装 等

    2024年01月17日
    浏览(7)
  • Redis安装与配置指南:适用于Windows、Mac和Linux系统的详细教程

    Redis安装与配置指南:适用于Windows、Mac和Linux系统的详细教程

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月16日
    浏览(9)
  • Windows 10 也能安装Kafka?这篇教程让你轻松掌握!

    Windows 10 也能安装Kafka?这篇教程让你轻松掌握!

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇👇 尘缘的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起学习,一起进步!💖💖 1、下载文件:https://www.oracle.c

    2024年02月04日
    浏览(9)
  • 前后端分离技术逐步深入,让你更加深入理解Nginx+Tomcat

    你提到了熟悉Tomcat和Nginx服务器的配置,以及应用前后端分离技术,请解释一下Tomcat和Nginx的主要作用是什么,以及在前后端分离中它们的角色是什么? 标准回答: Tomcat是一个Java应用服务器,主要用于运行Java Web应用程序。它负责处理HTTP请求、执行Servlet和JSP等Java代码,并将

    2024年02月07日
    浏览(4)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包