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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 分布式缓存中间件-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
目录
相关文章
|
10天前
|
NoSQL Linux Redis
linux 下和win下安装redis 并添加开机自启 图文详解
linux 下和win下安装redis 并添加开机自启 图文详解
15 0
|
23天前
|
NoSQL Java Redis
如何通俗易懂的理解Redis分布式锁
在多线程并发的情况下,我们如何保证一个代码块在同一时间只能由一个线程访问呢?
34 2
|
3天前
|
缓存 NoSQL Java
使用Redis进行Java缓存策略设计
【4月更文挑战第16天】在高并发Java应用中,Redis作为缓存中间件提升性能。本文探讨如何使用Redis设计缓存策略。Redis是开源内存数据结构存储系统,支持多种数据结构。Java中常用Redis客户端有Jedis和Lettuce。缓存设计遵循一致性、失效、雪崩、穿透和预热原则。常见缓存模式包括Cache-Aside、Read-Through、Write-Through和Write-Behind。示例展示了使用Jedis实现Cache-Aside模式。优化策略包括分布式锁、缓存预热、随机过期时间、限流和降级,以应对缓存挑战。
|
11天前
|
存储 缓存 NoSQL
使用redis进行缓存加速
使用redis进行缓存加速
25 0
|
12天前
|
存储 缓存 NoSQL
Java手撸一个缓存类似Redis
`LocalExpiringCache`是Java实现的一个本地缓存类,使用ConcurrentHashMap存储键值对,并通过ScheduledExecutorService定时清理过期的缓存项。类中包含`put`、`get`、`remove`等方法操作缓存,并有`clearCache`方法来清除过期的缓存条目。初始化时,会注册一个定时任务,每500毫秒检查并清理一次过期缓存。单例模式确保了类的唯一实例。
11 0
|
18天前
|
NoSQL Linux Redis
Linux安装Redis
Linux安装Redis
26 0
|
1月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
194 0
|
1月前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
45 1
|
1月前
|
存储 缓存 NoSQL
[Redis]——缓存击穿和缓存穿透及解决方案(图解+代码+解释)
[Redis]——缓存击穿和缓存穿透及解决方案(图解+代码+解释)
112 0
|
1月前
|
缓存 NoSQL 数据库
[Redis]——数据一致性,先操作数据库,还是先更新缓存?
[Redis]——数据一致性,先操作数据库,还是先更新缓存?