分布式缓存中间件-Redis介绍与安装

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 分布式缓存中间件-Redis介绍与安装

1. Redis的介绍

Redis是一种非关系型数据库(NoSQL),NoSQL是以key-value的形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说SQL标准,ACID属性,表结构等等,这类数据库主要有以下特点:非关系型的、分布式的、开源的、水平可扩展的。  

NoSQL使用场景:对数据高并发读写、对海量数据的高效率存储和访问、对数据的高可扩展性和高可用性。

Redis的key可以是字符串、哈希、链表、集合和有序集合。value类型很多,包括string、list、set、zset。这些数据类型都支持push/pop、add/remove以及取交集和并集及更丰富的操作,Redis支持各种不同方式的排序。为了保证效率,数据都是在缓存在内存中,它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。  

有了redis有哪些好处呢?举个比较简单的例子,看下图:

image.png

Redis集群和Mysql是同步的,首先从redis中获取数据,如果redis挂了,再从mysql中获取数据,这样网站就不会挂掉。更多关于redis的介绍以及使用场景,可以谷歌和百度,在这就不赘述了。

2. Redis的安装与部署

2.1 连接虚拟机首先得启动虚拟机的network服务。

我装的是目前最新版的CentOS7,虚拟机的网络使用的是桥接的方式。CentOS默认是不开启网卡的,所以首先得修改下配置。运行vi /etc/sysconfig/network-scrips/ifcfg-eno16777736打开配置文件将ONBOOT=no改为yes,CentOS默认是不开启网卡的接着在虚拟机重启network服务。#service network restart使用ifconfig查看eno16777736的ip地址,我的是192.168.1.120在window命令行ping一下该地址,如果能ping的通,说明可以连接。我的ip是192.168.1.105,所以没问题。ping通了说明可以使用putty来链接虚拟机了(当然了,也可以不使用putty,直接在CentOS的命令行操作也行,所以这一步不是必须的),打开putty输入虚拟机的ip地址,然后输入用户名和密码即可连接上:

image.png

image.png

2.2 安装gcc编译因为后面安装redis的时候需要编译,所以事先得先安装gcc编译,yum install gcc-c++

2.3 下载、解压和编译wget http://download.redis.io/releases/redis-3.2.2.tar.gz tar xzvf redis-3.2.2.tar.gz cd redis-3.2.2 makemake这一步可能会报错,如果报错,可以尝试使用如下命令来编译:make MALLOC=libc编译好的二进制文件会放到src/目录下,可以看到有redis-server和redis-cli,这是redis的服务端可客户端,我们到时候可以直接运行这两个文件即可启动服务端和客户端,下面再说。另外还有一些其他配置文件。我们会觉得这有点乱,所以我们一般会自己新建一个目录专门存放命令和配置。

2.4 移动文件、便于管理当然,你也可以不这么做~不过建议自己管理一下命令和配置,因为我的所有命令和配置都放在/usr/local/目录下,所有我在/usr/local/下新建了一个reids目录以及两个子目录来存放redis的命令和配置文件:mkdir –p /usr/local/redis/bin 放命令 mkdir –p /usr/local/redis/etc放配置文件然后将上面src目录下的命令和配置文件分别移动到对应的目录,移动后的结果如下:

image.png

2.5 启动redis服务进入到/usr/local/redis/bin目录下,执行./redis-server /usr/local/redis/etc/redis.conf这是根据配置文件redis.conf来启动redis服务,但是默认是前台启动的,会占用我的session,如果想要后台启动redis,还需要修改一下redis.conf的配置,打开该配置文件:vi /usr/local/redis/etc/redis.conf然后将daemonize=no改为yes,然后再启动一下redis服务就可以后台启动了,然后我们可以查看一下是否启动成功:ps -ef | grep redis  查看是否启动成功 netstat -tunpl | grep 6379  查看该端口有没有占用 结果如下:可以看出,redis启动正常。

image.png

2.6 启动redis客户端redis客户端命令也在bin目录下,是redis-cli文件,运行一下即可启动redis客户端:./redis-cli启动结果如下:

image.png

随便往里面插入一个name为eson15测试一下,可以正常获取,说明客户端没有问题。退出客户端的话直接quit即可。2.7 关闭redis服务关闭redis服务的话直接使用如下命令即可:pkill redis-server

image.png

可以看出,关闭了之后就没有该服务的信息了,端口号也没有占用了,运行客户端就会提示无法连接,说明redis服务已经关闭了。当然了,也可以使用如下命令关闭:./redis-cli shutdown


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
121 85
|
2天前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
9天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
61 24
|
2天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
58 7
|
3天前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。
|
1月前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
22天前
|
存储 NoSQL Java
使用lock4j-redis-template-spring-boot-starter实现redis分布式锁
通过使用 `lock4j-redis-template-spring-boot-starter`,我们可以轻松实现 Redis 分布式锁,从而解决分布式系统中多个实例并发访问共享资源的问题。合理配置和使用分布式锁,可以有效提高系统的稳定性和数据的一致性。希望本文对你在实际项目中使用 Redis 分布式锁有所帮助。
65 5
|
26天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
55 8
|
1月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
43 5
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
64 4