Redis初始以及安装

本文介绍了Redis的基本概念、用途、与消息队列的区别,以及其在分布式系统中的架构演变。重点讲述了Redis与Mysql的关系,强调其作为内存数据库的高速特性,并指导了Centos上Redis的安装和配置,包括支持远程连接。
摘要由CSDN通过智能技术生成

"梦却了无影踪,梦仍不曾改动" 


初始Redis

(1) Redis是什么?

        要认识、学习一个软件,最重要的途径无一是去该软件的官方文档里瞅瞅、转悠转悠。             

         从官方文档的介绍中得知,Redis是一种工作于内存,存储内存数据的中间件。

消息队列 vs 进程间通信消息队列

        也许对学过系统的友友们看到消息队列,可能立马会联想到进程间通信中提到的消息队列。这两个是一样的技术嘛?答案是两者相差甚远。Redis的初心就是用来作为一个“中间件”消息队列使用。不过当下存在其他做这个"中间件"更好的软件,Redis这个功能也就不了了之。        

        进程间的消息队列仅仅限定于一台主机上的两个进程。Redis是个网络服务,它是跨网络通信的,可以把自己的变量给别的进程,甚至是别的主机进程使用。

       也许你会说,定义变量不就是在内存中存储数据嘛,这交由进程自己不就得了?当然,在一台主机上这么做是肯定很科学、很简便的,但如果是多台主机需要这同一变量的数据呢?Redis只有在分布式系统中,才能发挥其威力。如果是单机程序,直接通过变量存储的方式,是比Redis更优的方式。

(2) 架构的演进

        关于分布式系统,我们可以从最初端进行演示:

单机架构:        

        可是随着业务的不断发展,用户数量的增多,其数据量也自然而然变得庞大起来。一台主机难以应付!因为两台服务器进程都要吃单台主机的资源,两者属于是 ”竞争的关系"。

        一台主机的硬件资源是有限的!

        引入分布式当然是迫不得已,因为这样的管理、维护成本是增加的,系统的复杂度也是提升的。 

应用服务和数据库分离:                      

应用服务器集群架构:

        受制于单个应用不足以支持海量的并发请求,单台应用服务器已经无法满足需求。

        可是,随着你的用户量持续增加,用户数据也会日益增多,我们知道Mysql是与硬盘进行IO交互的访问速度是很受限的。如果我们把数据库分为热、冷数据,将冷数据放到Mysql中,因为访问需求少,把热数据放到缓存服务器中,访问需求的多,并且访问速度相对于Mysql而言更快、更高效。用作什么当我们的缓存服务器软件呢? 答案是Redis!

        之后的架构演进可以看看这篇文章,这里不在再费口舌:

https://blog.csdn.net/RNGWGzZs/article/details/132202821?spm=1001.2014.3001.5501

        所以如何理解,诸如Mysql、Oracle、sql server等数据库与Redis的关系?这些优秀的数据库和Redis有什么区别呢?

Mysql vs Redis

        我们都知道Mysql是与硬盘数据进行交互的,虽然Mysql自己有一份独立的缓冲区用来进行页面的换入换出,但是也避免不了直接与硬件IO时,速度慢的问题(这里的快慢并非是无参照的,而是比对访问内存和访问外设速度的比较的)。而在很多互联网产品中,对于性能的要求是很高的。

       反观Redis,它是工作于内存的中间件,也可以当做一个数据库来使用,其访问的资源、对象也是内存中的数据,其访问速度自然而然相比Mysql快很多!

        但,和Mysql相比,其劣势就在于存储空间是有限的的,远不及Mysql的存储能力。

        而在大多数场景,为了为了填补Redis存储能力有限,Mysql访问速度过慢,典型的方案就是将Redis作为Mysql的Cache(缓存),常访问的数据存储在Redis上(热数据),其余数据就存储在Mysql上。一条访问请求的到来,先去Redis中查找数据,如果数据存在,读取数据直接返回,如果数据不存在才会去Mysql中查找。

        数据的访问也有自己的"二八原则","20%的热点数据,可以满足80%的访问需求"。当然,任何一些技术的引入是解决了当前问题,但也会随之而来带来新的问题,比如,数据发送修改,Redis和Mysql之间的数据同步等问题。

(3) Core capabilities

        我们继续将目光放回到Redis的官方文档,看看Redis这个强大软件的能力:

 

(4) Redis的使用场景

Session storage: 

Redis为什么快!

        Redis在这里的快是相对的,换句话说,和Mysql比起来Redis为什么快。        

● Redis的数据存储在内存,就比访问硬盘数据库要快很多。(这是我们一直说的点).

● Redis核心功能都是比较简单的逻辑,操作比较简单的数据结构. 相反Mysql针对数据插入、删除会有各种的主键、约束等等.

● Redis模型使用的是单线程(虽然更高的版本引入了多线程),正因为单线程模型的存在,减少了不必要的线程之间互斥、同步等资源竞争的开销.

● 从网络模型上看,Redis使用了IO多路复用(例如select\poll\epoll). 


Redis安装

Centos7:

(1) 新增scl软件源

如果是Centos7,yum仓库默认给的是Redis3系列,是很老的版本。

所以 我们需要安装额外的软件源: scl

yum install centos-release-scl-rh
yum install rh-redis5-redis

(2) 创建符号链接

        Centos7安装还需要修改一些配置项,比其他版本是更麻烦的。

        我们来查看默认的安装目录:/opt/rh/rh-redis5/root/usr/bin/

         这藏得太深了,不⽅便使⽤,我们通过符号链接,把需要⽤到的关键内容设置到⽅便使⽤的⽬录中。  

●  针对可执行程序设置符号链接

cd /usr/bin
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinel
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli

● 针对配置文件设置符号链接

cd /etc/
ln -s /etc/opt/rh/rh-redis5/ ./redis

(3) 修改配置⽂件       

        我们需要找到redis的配置文件: /etc/redis/redis.conf

1)设置ip地址

    

2) 关闭保护模式

3) 启动守护进程

        因为Linux只能启动一个前台进程,所以很多服务进程都是以后台进程的方式运行。

4) 设置工作目录

         同样这里的工作目录太深了,我们可以重新配置一个目录。

4) 设置⽇志⽬录

        这里同工作目录同理,也需要重新设置一下。  

(4) 启动Redis服务器

# 启动 redis
redis-server /etc/redis/redis.conf
# 停⽌ redis
# 先查看到redis-server的pid
ps aux | grep redis
# 通过kill命令直接杀死redis进程
kill 进程id

        这样,我们也就成功安装了redis-server了!      

  

(5) redis-cli

        redis同Mysql一样都是网络服务器,是一个客户端-服务器结构的程序!

如何启动redis-cli?

        Redis客户端也有很多种形态,我们后面主要使用redis-cli自带的客户端。

        我们输入命令,完成对Redis的基本操作~

Centos8:

        如果是Centos8,Redis 5.0 被包含在 CentOS 8 源仓库中,yum仓库默认给的是Redis5的版本,直接yum install 即可:

 yum install -y redis
        通过 systemd 管理 Redis ⼀旦安装完成,我们可以将 redis 设置为开机⾃动启动:
 systemctl enable redis

(1)更改支持远程连接

         默认情况下,Redis 只绑定在 127.0.0.1 接⼝上,即只允许从 127.0.0.1 上进⾏连接 Redis 服务。所以需要配置允许 Redis 接受远程访问,修改 Redis 的配置⽂件:/etc/redis.conf
        定位到 bind 127.0.0.1 开头的⼀⾏,修改为 bind 0.0.0.0 以添加全接⼝⽀持。
        

(2) 控制redis

       启动redis服务:

systemctl start redis

        验证 Redis 是否正确地监听 6379 端⼝:

        停止或重启redis服务:
systemctl stop\restart redis 
        为此,我们就完成了在不同Centos系列版本中的Redis安装。为我们成功推开Redis学习的大门喝彩吧!

本篇到此结束,感谢你的阅读。

祝你好运,向阳而生~ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值