文章目录

  • Redis简介:
  • Centos7安装、启动redis
  • 在顺便提一下Redis配置文件中比较重要的值
  • reids的关闭


Redis简介:

Redis是一个开源的使用C语言编写的,支持网络、基于内存亦可持久化的日志型、使用key-value存储数据的非关系型数据库(关系型数据库:表与表之间有关联关系,非关系型数据库:数据与数据之间没有关系)。

Redis特点:

  • 性能高,适合用于大数据相关场景。
  • 简单:不会出现类似mysql这种关系型数据库一张表N多个字段,还和别的表有关联关系的情况。
  • 支持数据的持久化。
  • 除了简单的key-value外,redis还提供了list、set、zset、hash等数据结构存储方式
  • Redis支持数据的备份,集群等高可用功能
  • 原子性:因为redis是单线程的,所以redis的所有操作都是原子性的,多个操作也支持事务,通过MULTI和EXEC指令包起来
  • redis单个key存入512M大小
  • redis支持集群,而且redis支持16个库(0-15)
  • redis还可以做消息队列,比如聊天室

缺点:因为redis是基于内存来存放数据,所以对内存的占用和消耗非常大,如果运用不当,可能会因为内存消耗过多产生性能问题,严重的可能会导致redis宕机。

因此,NOSQL类型的数据库适合在以下场景使用:

1. 对性能要求高


2. 数据模型比较简单

3. 不需要高度的数据一致性

4. 对于给定key,比较容易映射复杂值的情况

Centos7安装、启动redis

首先在redis的官网下载最新的redis源码包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CMF05CHq-1576225451318)(C:\Users\46275\AppData\Roaming\Typora\typora-user-images\image-20191211214026283.png)]

之后放入到centos某个目录中,因为redis是用C语言编写的数据库,所以我们需要安装gcc环境。这里使用简单的yum安装。

yum -y install gcc gcc-c++ kernel-devel //安装gcc、c++编译器以及内核文件 
gcc -v //查看是否安装成功

如果安装成功,则会显示下面的信息:

windown下怎么关闭redis centos关闭redis_服务端


之后解压源码包 并进行编译

tar -zxvf redis-5.0.7.tar.gz	//解压源码包
cd redis-5.0.7 //进步目录
make //编译

编译完成之后就可以进行安装

make PREFIX=/usr/local/redis install //执行安装目录,如果不加-PREFIX则默认安装到/usr/local/bin

安装完成之后进入/usr/local/redis下的bin目录

可以看到以下文件:

windown下怎么关闭redis centos关闭redis_windown下怎么关闭redis_02

文件介绍:

  • redis-server:redis的服务端,类似于mysql的服务端
  • redis-cli:redis的客户端,访问服务端里的数据需要借助客户端
  • dump.rdb: redis的持久化数据,注意,你在哪个目录下启动的redis,就会在哪个目录生成该文件,打个比方,我在/usr下使用/usr/local/redis/redis-server启动了redis,则关闭redis后就会在 /usr下生成一个dump.rdb

之后就可以启动redis服务端

./usr/local/redis/bin/redis-server

windown下怎么关闭redis centos关闭redis_redis_03


看到这个图案就证明我们的redis服务端已经启动完成了。6376就是redis的端口,12962是进程号

这时,如果我们想要访问服务端的话,就需要另开一个窗口进行访问。

启动客户端:

./usr/local/redis/bin/redis-cli	//启动客户端

windown下怎么关闭redis centos关闭redis_centos_04


启动之后可以看到我们的root已经变成了127.0.0.1:6376

之后我们通过ping命令测试是否成功连接。返回PONG则代表成功

但是每次都需要单独给redis 的服务端开一个窗口,在实际的开发过程中十分不方便,所以接下来我们需要修改redis的配置文件,使redis可以在后台运行,而不是将窗口锁定

第一步:

将之前我们编译后的文件夹中的redis.conf文件复制到安装目录下,注意要与bin目录同级

windown下怎么关闭redis centos关闭redis_服务端_05

修改以下属性的值:

daemonize yes //设置redis是否以守护进程的形式运行,默认为no
requirepass <password> //客户端连接redis的密码

之后我们启动的命令也要做出相应的修改

./usr/local/redis/bin/redis-server ./usr/local/redis/redis.conf	#给redis添加启动参数
./usr/lcao/redis/bin/redis-cli	-h host -p port -a password #启动服务端,-h表示需要连接服务端的ip,-p表示服务端的端口号,-a表示连接密码,默认的-h是127.0.0.1,-p是 6379,所以如果一般可以使用redis-cli -a password 登录

windown下怎么关闭redis centos关闭redis_centos_06

登录之后我们就可以试着往里面存数据啦!

windown下怎么关闭redis centos关闭redis_windown下怎么关闭redis_07

在顺便提一下Redis配置文件中比较重要的值

//比较重要的配置项:
1.daemonize no //redis默认不是使用守护进程运行的,可以修改该配置项的值,使用yes以守护进程启动redis
2.pidfile	/usr/run/redis_6379.pid	//当redis以守护进程运行时,默认将pid写入此路径下的文件中,可以通过修改配置项的值指定其他路径下的文件
3.port: 6379	//redis默认的端口号
4.bind 127.0.0.1 //默认绑定主机,默认情况下只有本机才可以访问redis ,如果需要在其他计算机上访问该服务器上的redis,需要将该配置项注释
5.timeout 300	//当客户端闲置指定时间后,关闭连接,如果设置0,则表示关闭此功能
6.loglevel verbose	//指定redis的日志级别,redis的日志级别有:debug、verbose、notice、warning,默认为verbose
7.logfile stdout	//日志记录方式,默认为标准输出,如果将redis设置为守护进程,而此处又设置为标准输出,则日志输出会发送给/dev/null
8.databases 16		//设置数据库的数量,默认数据库的标号为0,可以使用SELECT <dbid>命令在连接上指定数据库id
9.save <seconds> <changes>		//指定在多长时间,有多少条更新操作,就将数据同步到数据文件,可以多条配合
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示 900秒(15分钟)内有1个更新操作,300秒(5分钟)内有10个更新操作,60秒(1分钟)内有10000个更新操作
10.rdbcompression yes	//指定存储至本地数据库时是否进行压缩,默认为yes,redis采用LZF压缩,如果想要节省CPU占用,可以关闭此项,但是会导致数据库文件增大
11.dbfilename	dump.rdb	//指定本地数据库的文件名
12.dir ./	//指定本地数据库文件存放位置。根据启动redis时所在目录存放,比如我在/usr下使用./usr/local/redis/bin/redis-server启动。则会在/usr下生成demp.rdb本地数据库文件
13.replicaof	<masterip> <masterport>	//设置当本地为slave(主从服务中的从服务)服务时,master服务的IP以及端口号,在redis启动时,它会自动从master进行数据同步
14.masterauth <password>	//当master服务设置了密码时,slave服务连接master服务的密码
15.replicaof-read-only yes	//设置salve服务是否只读,默认为yes
16.requirepass foobared		//设置当客户端连接服务端时的密码,默认关闭
17.maxclients	128	//设置同一时间最大客户端连接数,默认无限制,如果设置为0,则表示不显示,当客户端达到限制时,新的客户端无法连接redis,并会返回max number of clients reached 错误信息
18.maxmemory <bytes>	//指定redis最大内存限制,默认是256MB,到达最大内存之后,redis会尝试清除已到期或即将到期的key,当此方法处理之后,仍到达最大内存,这时将无法对redis进行写操作,但是仍然可以读取数据。
19.appendonly no 	//指定是否在每次更新操作后进行日志记录,redis默认情况下是异步的将数据写入磁盘,如果不开启,可能会因为断电导致一段时间的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。
20.appendfilename appendonly.aof  //指定更新日志的文件名
21.appendfsync everysec  //指定更新日志条件,共有3个值
no:表示等操作系统进行数据缓存同步到磁盘(快)
always:表示每次更新操作后手动调用fsync()将数据同步到磁盘(慢、安全)
everysec:表示每秒同步一次(折中方案,也是默认值)

关于设置最大内存:注意这里设置的最大内存不是redis占用了多少内存之后会采取怎样的策略,而是系统内存达到了设定值的时候,redis就会采取相应的策略,

举个栗子:假如你设定的maxmemory是500M,而你系统已经用了1G的内存,这时,哪怕你的reids里面一条数据都没有,当你进行set的时候,redis一样会报错,返回

(error) OOM command not allowed when used memory > 'maxmemory'.

reids的关闭

一、断电、非正常关闭:如linux系统下 kill -9 pid ,这种方式造成的redis关闭会造成数据丢失,所以我们应该尽量避免。

二、正常关闭、数据将会持久化保存:./bin/redis-cli shutdown 如果客户端设置了密码,则需要先连接redis服务端后再使用shutdown关闭。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cx1ic5e2-1576225451334)(C:\Users\46275\AppData\Roaming\Typora\typora-user-images\image-20191212104826962.png)]

大功告成!
文章中不足或有错误的地方,欢迎大家指出。共同进步!感谢。