Redis基础介绍以及编译安装过程(一)

一.Redis简介

 


 

redi是完全开源免费的,遵守BSD协议,是具有高性能的key-value数据库

redis与其他key-value缓存产品对比,具有如下特点:

1)redis支撑数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载使用;

2)redis不仅仅支持简单的key-value类型的数据,同时还提供lis,set,zset,hash等数据结构的存储

3)redis半持久化,存储与内存和硬盘中

【Redis和Mongodb的区别】:

redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性。redis数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的lru算法删除数据;

mongodb是指文档型的非关系型数据库,mongodb更类似msyql,支持字段索引,游标操作,其优势在于查询功能比较强大,擅长查询json数据,能够存储海量数据,但是不支持事务;

 


 

二.Redis的安装

 


 

1.下载官网:https://redis.io/download

$ wget https://download.redis.io/releases/redis-6.2.1.tar.gz
$ tar xzf redis-6.2.1.tar.gz
$ cd redis-6.2.1
$ make

2.下载编译完成后,安装完的目录为src:

重点文件介绍:

1)redis-server:Redis服务器的daemon启动程序

2)redis-cli:Redis命令操作工具。也可以用telnet根据其纯文本协议来操作

3)redis-benchmark:Redis性能测试工具,测试Redis在当前系统下的读写性能

4)redis-check-aof:数据修复

5)redis-check-dump:检查导出工具

3.将redis安装编译后的相关命令复制到本地的bin二进制目录中,方便管理:(也可不复制)

 

4.将redis的conf配置文件复制到/etc目录下,方便启动:(也不可复制)

 如果进行了3和4之后,就可以将redis的文件进行删除了,redis最核心的就是3步骤中的3个命令以及4步骤中的2个配置文件:

 

 5.启动redis:redis-server /etc/redis.conf:

 启动之后,则是在前端运行,正常来说,我们需要将其启动在后台,此时则需要改动redis的配置文件(ctrl+C退出)

【注意】启动之后有两个warning,其中一个是overcommit_memory is set to 0的警告:

 可以通过修改系统配置文件进行优化,官方建议将值改为1,执行命令是:

1)echo vm.overcommit_memory=1>>/etc/sysctl.config

2)sysctl vm.overcommit_memory=1 或者执行

echo vm.overcommit_memory=1>>/proc/sys/vm/overcommit_memory

【使用数字的含义】:

0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,把错误返回给应用进程。

1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2,表示内核允许分配超过所有物理内存和交换控件总和的内存。

6.改动redis.confg文件,将redis进行后台启动

vim /etc/redis.cofig文件,将GENERAL下的daemonize no改为yes,保存后并重新启动。

7.重新启动:redis-server /etc/redis.conf

启动之后,查看redis-server的进程:ps -ef|grep redis-server:

redis的默认端口为6379

【ps -ef|grep redis-server|grep -v grep命令解释用grep -v参数可以将grep命令排除掉】

8.在本地直接连接redis:直接使用redis-cli即可:

1)使用info可以查看redis的属性及状态信息:

 2)使用quit则退出redis:

9.redis参数调优与维护管理:

redis配置文件讲解(redis.config):

redis配置文件我复制到了/etc/redis.confg路径下,其实也可以任意路径,如下是redis.conf文件参数介绍:

1)bind 127.0.0.1

bind指定redis只接收来自IP对应网卡的请求,如果不进行设置,那么将处理所有请求。bind绑定的是本机的IP地址,准确的说是本地网卡对应的IP地址,每一个网卡都有一个IP地址,可以设置绑定到哪块网卡上,如果指定了bind,则说明只允许来自指定网卡的Redis请求。

注意:此参数不是设置redis允许来自其他计算机请求的客户端IP地址。

2)protected-mode yes

此参数是redis3.2版本之后加入的新特性,默认是yes,即开启,这是为了禁止公网直接访问redis新增的设定,用于加强redis安全的。protected-mode在启用状态,redis无法提供对外连接。

要启用redist对外连接功能,有如下两种方法:

a)关闭protected-mode模式

b)开启protected-mode保护模式时,必须设置访问密码或者配置bind IP

3)tcp-backlog 511

此参数确定TCP连接中已完成的队列(完成三次握手之后)的长度,默认时511,当然此值不能大于Linux系统定义的/proc/sys/net/core/somaxconn的值,而Linux的默认参数值是128.当系统并发量大并且客户端速度缓慢的时候,可以将两个参数一起设定为一个一样的值,对于负载很大的服务程序来说,默认128太小,一般回将它修改为2048或者再大,在./etc/sysctl/confg中添加:net.core.somaxconn=2048,然后再终端中执行sysctl-p。

 

 

 

 

 

 

 

posted @ 2021-04-05 15:03  小珊子  阅读(399)  评论(0编辑  收藏  举报