1、什么是Redis

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步

Redis是一个NoSQL数据库

不仅仅是数据库!

二、Redis的优缺点

优点

  1. 读写性能非常好,Redis读的速度是 110000次/s ,写的速度是 81000次/s
  2. 支持数据持久化,AOF和RDB两种持久化方式
  3. 支持事务,事务是原子性的
  4. 数据结构丰富,支持多种数据结构(String、List、Set、Hash、ZSet、HyperLogLog、Bitmaps、Geospatial等)
  5. 支持主从复制、读写分离

缺点

  1. 数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。
  2. Redis 不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复。
  3. 主机宕机前,无法完全将数据同步到从机,切换ip后会导致数据不一致问题,降低可用性

Redis是单线程的、基于key-value的,速度极快,可以提高系统的可用性,具有更好的高并发吞吐量能力~

三、阿里云服务器安装Redis

redis是c语言开发,安装redis需要先将官网下载的源码进行编码,编译依赖gcc环境

yum install gcc-c++

已经安装了低版本的,那么直接升级gcc

yum -y install centos-release-scl && yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils && scl enable devtoolset-9 bash

在Linux服务器新建文件夹存放Redis

进入 /usr/local/

下载redis

wget https://download.redis.io/releases/redis-6.2.6.tar.gz

解压刚刚下载的redis

tar -zvxf redis-6.2.6.tar.gz

查看目录文件

ll

云 RDS 云redis 阿里云rds与redis区别_redis


移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录:

mv redis-6.2.6 /usr/local/redis

输入命令编译文件

make

云 RDS 云redis 阿里云rds与redis区别_配置文件_02


等待make命令执行完成即可。

如果执行make命令报错:cc 未找到命令,原因是虚拟机系统中缺少gcc,执行下面命令安装gcc:

yum -y install gcc automake autoconf libtool make

如果执行make命令报错:致命错误:jemalloc/jemalloc.h: 没有那个文件或目录,则需要在make指定分配器为libc。执行下面命令即可正常编译:

make MALLOC=libc

make命令执行完,redis就编译完成了。

执行下面命令安装redis,并指定安装目录

make install PREFIX=/usr/local/redis

prefix这个关键字的作用是编译的时候用于指定程序存放的路径。
假设不添加该关键字Linux会将:
	可执行文件存放在/usr/local/bin目录;
	库文件会存放在/usr/local/lib目录;
	配置文件会存放在/usr/local/etc目录;
	其他的资源文件会存放在usr/local/share目录
这里指定目录之后,方便后续卸载,直接rm -rf /usr/local/redis 即可删除redis。

云 RDS 云redis 阿里云rds与redis区别_java_03

四、启动Redis

1. 进入redis安装目录,执行下面命令启动redis服务

## 此时未修改redis任何配置文件,默认连接redis密码为空。
## 采取后台进程方式启动
cd /usr/local/redis
./bin/redis-server redis.conf

2. 查看Redis是否正在运行

## (1)采取查看进程方式
ps -aux|grep redis
## (2)采取端口监听查看方式
netstat -lanp|grep 6379
## (3)采取查看进程方式
ps -ef | grep redis

3. 修改配置文件

注释掉bind 127.0.0.1

英文注释解释的很清楚(翻译软件嘎嘎的),如果放开bind 127.0.0.1即只有本机可以访问,如果注释掉,所有环境都可以访问。自己玩无所谓,生产等比较重要的环境还是建议绑定访问的ip

保护模式修改:protected-mode的值默认为yes,将其修改为no;

该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no

云 RDS 云redis 阿里云rds与redis区别_云 RDS 云redis_04

守护进程修改daemonize的值默认为no,将其修改为yes

yes表示启用守护进程,默认是no即不以守护进程方式运行

云 RDS 云redis 阿里云rds与redis区别_云 RDS 云redis_05

redis密码修改:requirepass
设置 redis 连接密码,图例密码为redis@123

云 RDS 云redis 阿里云rds与redis区别_配置文件_06

4. 更新配置文件后重启

ps -ef|grep redis
kill -9 进程号
cd /usr/local/redis
./bin/redis-server ./redis.conf
(因设置了守护进程,此操作同采取后台进程方式)

5. 测试redis

通过redis-cli测试redis是否可用,在redis安装目录执行下面命令:

./bin/redis-cli

此处我们通过下面命令随便set一个字符串类型的值,key是test,value是hello:

set test hello

云 RDS 云redis 阿里云rds与redis区别_配置文件_07

然后通过下面命令get出test这个key的value值:

get test

云 RDS 云redis 阿里云rds与redis区别_Redis_08


测试没有问题,至此,redis在我们的Linux服务器上就已经安装完成了。