Redis系列(一):Redis简介及环境安装

157 阅读6分钟

提到Redis,大家肯定都听过,并且应该都在项目中或多或少的使用过,也许你觉得Redis用起来挺简单的呀,但如果有人问你下面的几个问题(比如同事或者面试官),你能回答的上来吗?

  1. 什么是Redis?
  2. Redis能存储哪几种数据结构?
  3. Redis有几种持久化机制?它们的优缺点分别是什么?
  4. 哪些场景需要使用Redis?
  5. 什么是缓存雪崩,如何避免?
  6. 什么是缓存穿透,如何避免?
  7. 什么是缓存击穿,如何避免?

如果你都能回答的上来,恭喜你,说明你对Redis有一定的了解,如果回答不上来,也没关系,本系列博客会对Redis进行一系列的讲解,欢迎关注!

所谓工欲善其事,必先利其器,既然要学习Redis,首先我们至少得知道什么是Redis以及如何安装Redis环境,这也是本篇博客的主要内容。

1. Redis简介

什么是Redis呢?

Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存和消息代理。它支持诸如字符串、散列、列表、集合、有序集合等数据结构。-- Redis官网

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的高性能的key-value数据库。-- 百度百科

Redis是一款依据BSD开源协议发行的高性能key-value存储系统,通常被称为数据结构服务器。-- 其它网友

Redis是一个远程内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然地映射到这些数据结构上。 -- 《Redis实战》

Redis是一个速度非常快的非关系型数据库,它可以存储键(key)与5种不同类型值(value)之间的映射(mapping),可以将存储在内存的键值对数据持久化到硬盘,可以使用复制特性来扩展读性能,还可以使用客户端分片来扩展写性能。-- 《Redis实战》

2. Redis环境安装(Windows)

说明:Redis官方并没有提供Windows版本的Redis,也不建议在生产环境使用Windows版本的Redis,我目前所在的公司生产环境Redis是部署在Linux服务器的。

虽然Redis官方不支持Windows版本,但是微软Microsoft Open Tech Group提供了1个Windows版本的Redis,下载地址:github.com/microsoftar…。

![Redis系列(一):Redis简介及环境安装](https://p6-tt.byteimg.com/origin/pgc-image/80a820399532471e9720d3b49ad09ddc?from=pc)

将下载好的文件解压到你喜欢的目录,我这里是E:\Tools\Redis-x64-3.0.504,如下所示:

![Redis系列(一):Redis简介及环境安装](https://p6-tt.byteimg.com/origin/pgc-image/f2fed9877f6849a3b3f42a619dd2fba5?from=pc)

双击上图中红色标记的redis-server.exe即可启动Redis服务:

![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/ad904a4d79c24d85ac1e843e349714b9?from=pc)

也可以打开一个cmd窗口,切换到Redis所在目录,然后执行如下命令启动:

redis-server.exe redis.windows.conf复制代码
![Redis系列(一):Redis简介及环境安装](https://p6-tt.byteimg.com/origin/pgc-image/29355abe63484ea0926dff77ba50af6d?from=pc)

通过这2种方式打开,需要保证cmd窗口一直保持打开状态,关闭后客户端就无法连接,如果服务器重启了,需要再次打开Redis服务端,为了解决该问题,我们可以把Redis安装成Windows服务:

cd E:\Tools\Redis-x64-3.0.504redis-server --service-install redis.windows.conf复制代码
![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/22956892753b4ccea79c78db1b03cd4f?from=pc)
![Redis系列(一):Redis简介及环境安装](https://p6-tt.byteimg.com/origin/pgc-image/cb76935694204bc1886d1d016eb37c20?from=pc)

你可以直接在界面上启动/停止该服务,也可以执行cmd命令来启动/停止/卸载该服务:

启动服务:

redis-server --service-start复制代码
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/f7548a575a5743308baeb710bdf0967c?from=pc)

停止服务:

redis-server --service-stop复制代码
![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/4df9801af0304e3fbdc581e43dbbfe3f?from=pc)

卸载服务:

redis-server --service-uninstall复制代码
![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/79348fd6b20d42039dc7985cb949e203?from=pc)

3. Redis环境安装(Linux)

首先,我们需要将Linux环境下Redis的安装包放到服务器上去,这里有2种方法,第1种方法是,打开Redis官网的下载地址:redis.io/download,下载稳定版本到本机:

![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/0a35323a558748e1b00be3292a7b113b?from=pc)

然后通过工具,比如Xftp,将本地下载的文件上传至Linux服务器的某目录下,比如我这里要上传的目录是/mnt。

第2种方式是通过命令直接下载Redis的安装包到服务器的/mnt目录下,具体命令如下所示:

cd mnt/wget -q http://download.redis.io/releases/redis-5.0.7.tar.gz复制代码
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/a93f9752d0f046488fec240784c18119?from=pc)
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/e026b5946482432f8bdd62a2cb77acae?from=pc)
![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/a5fee98d18284324a4087045c471ba81?from=pc)

然后,执行如下命令解压文件:

tar -xzf redis-5.0.7.tar.gz复制代码
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/bd54d469312b4a88af5ccbc7d44045da?from=pc)
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/c3cc227174a3481480b9ec36eb8d40c7?from=pc)

然后,执行如下命令将解压好的文件移动到/usr/local目录下,并进行编译:

mv redis-5.0.7 /usr/local/cd /usr/local/redis-5.0.7make复制代码
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/ea67dfb3db424578a7a643af346bfcfd?from=pc)

注意事项:执行完make命令后,屏幕会输出好多信息,大概有2~3屏的样子

当看到如下信息时,代表编译完成:

![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/c7973d997a404b4799b1472e4e3815ff?from=pc)

然后,切换到/usr/local/redis-5.0.7/src目录,执行make install命令进行安装:

cd src/make install复制代码
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/b8d0b1aab794457da4fc2e9572a403bc?from=pc)

然后,切换到/usr/local/redis-5.0.7目录,新建文件夹bin和etc,并将该目录下的redis.conf文件移动到etc目录,

将/usr/local/redis-5.0.7/src目录下的mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server

移动到刚刚创建的bin目录:

cd ..mkdir binmkdir etcmv redis.conf etc/cd srcmv mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server /usr/local/redis-5.0.7/bin/复制代码
![Redis系列(一):Redis简介及环境安装](https://p6-tt.byteimg.com/origin/pgc-image/662d4f2350c841de87bae9ec1b9c9062?from=pc)

然后,切换到/usr/local/redis-5.0.7/etc目录,修改下Redis的配置文件redis.conf:

cd ..cd etc/vi redis.conf复制代码
![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/b6fca49e9e9842babecde0dc64288591?from=pc)

redis.conf主要修改以下4点:

  1. 将daemonize no改为daemonize yes,表示需要在后台运行
  2. 将bind 127.0.0.1这一行注释掉 这里的bind指的是只有指定的网段才能远程访问这个redis,注释掉后,就没有这个限制了。
  3. 将protect-mode yes改为protect-mode no 默认是protect-mode yes,不能远程访问,改为no之后,可以远程访问
  4. 添加requirepass 123456设置密码(默认密码为空)

最后,切换到/usr/local/redis-5.0.7/bin目录,执行如下命令启动Redis服务:

cd ..cd bin/redis-server /usr/local/redis-5.0.7/etc/redis.conf复制代码

启动后,可以执行如下命令查看Redis是否启动以及进程ID:

ps aux | grep redis-server复制代码
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/4ef317d197814971bbdd33f7904a4f8a?from=pc)

4. Redis Hello World示例

打开cmd窗口,打开一个redis-cli交互窗口来简单使用下Redis:

redis-cli.exe -h 127.0.0.1 -p 6379复制代码

设置一个key-value缓存,其中key为hello,value为hello world!:

set hello "hello world!"复制代码

获取key为hello的值:

get hello复制代码
![Redis系列(一):Redis简介及环境安装](https://p6-tt.byteimg.com/origin/pgc-image/935b7638d72d40d4af4a9185751029c5?from=pc)

5. Redis Desktop Manager使用

虽然我们可以通过命令的方式来查看Redis存储的数据,但毕竟不太友好,这里推荐个比较流行的工具:Redis Desktop Manager。

官网地址:redisdesktop.com/。

官网现在的版本2019.5需要付费才能使用,否则只有14天的试用期。

![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/a6d79df75da44b08b5da99e763611381?from=pc)

在2019年6份打开还是下面这样的,貌似涨价了啊,哈哈。

![Redis系列(一):Redis简介及环境安装](https://p6-tt.byteimg.com/origin/pgc-image/6c23117f7e8f44de9188a523afdb91f1?from=pc)

不过我们仍然可以下载之前不付费的版本,下载地址:github.com/uglide/Redi…。

![Redis系列(一):Redis简介及环境安装](https://p6-tt.byteimg.com/origin/pgc-image/3d72ec8a064540e0b78920762e61ba05?from=pc)

安装过程比较简单,这里不再赘述,安装完成后,连接本机Windows环境下的Redis服务器:

![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/b00d7a231c8745399b82b62e4c0b0629?from=pc)

连接成功后,可以看到之前设置的值:

![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/2e54715a399440d6938b1124b410b612?from=pc)

也可以连接远程Linux环境下的Redis服务器:

![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/6ee011639af04cdfb5dd364ae6d65035?from=pc)
![Redis系列(一):Redis简介及环境安装](https://p3-tt.byteimg.com/origin/pgc-image/a574023f40a44d86ac0fb678121a0279?from=pc)
![Redis系列(一):Redis简介及环境安装](https://p1-tt.byteimg.com/origin/pgc-image/169b2edbc65446579744178c10b9276f?from=pc)

有些同学可能使用的工具是Another.Redis.Dsektop.Manager,这里只贴下下载地址:electronjs.org/apps/anothe…,有兴趣的同学可以自行下载。