Jack Frost

Redis系列(一)–安装、helloworld以及读懂配置文件

再开个redis系列,本系列打算不详细讲一系列的命名的了(会推荐别人写的,人家写的够详细了),我直接就是做redis方案提供,当然一开始还是讲下helloworld和配置文件好了。会逐步更新,欢迎关注。

文章结构:(1)安装;(2)helloworld;(3)解析配置文件(一一罗列方便复习);(4)重点配置


一、安装:把到官网下载好的redis压缩包放置到你想要的位置。并解压。

这里写图片描述

然后进入redis-3.0.4目录,执行make命令

问题:如果遇到gcc没找到,那么请看以下说明:

原因:redis是c语音编写的,需要gcc环境支持。

gcc是linux下的一个编译程序,是c程序的编译工具。GCC是GNU计划提供的编译器家族,支持C,C++,Objective-C,Java等多语音,同时能运行在x86,x86-64,IA-64,PowerPC等几乎所有硬件平台。

解决:一个安装命令(centos下的命令)


二、helloworld:

(1)关注第一个目录!/usr

这是一个重要目录,用户的很多应用程序和文件都放在这个目录下面,类似windows的program file目录

而我们的redis安装好后,一般就是在/usr/local/bin下面啦

这里写图片描述

(2)关注的第二个目录:

我们在玩redis,当然关注自己的redis目录啦!!,同时重点关注reids.conf

注意,一般我们不直接操作我们安装好的reids配置文件,因为他很重要,关乎生死,redis架构好坏。

这里写图片描述

(3)于是为了安全,我们要另建一个目录去操作redis.conf

这里写图片描述

然后就把原来的那个redis.conf复制到我们新建的目录嘛

这里写图片描述

想要多少份就多少份,反正操作对应好的配置文件就ok啦。

redis关键:能备份的先备份

(4)修改配置文件

把此处的no改成yes

意思是:默认情况下 redis 不是作为守护进程运行的,如果你想让它在后台运行,你就把它改成 yes。我们必须保证它不被杀死!!!

这里写图片描述

(5)启动并观察redis进程

使用下面命令可以看到,现在并没有开启redis嘛。

这里写图片描述

那么我们就启动他嘛,进入/usr/local/bin目录

要求:1.找到我们刚刚复制并修改过来的redis.conf全路径,使用redis-server命令;2. 1的命令启动后没有报错,继续使用redis-cli -p 6379 命令,ping连接一下。返回pong即成功启动!

这里写图片描述

这个时候我们再来观察redis的进程:就可以看到啦

这里写图片描述

于是我们就可以开始写我们熟悉的helloworld啦!

这里写图片描述

先暂时给个常见错误解决:

这里写图片描述

错误)misconf redis被配置以保存数据库快照,但misconf redis目前不能在硬盘上持久化。用来修改数据集合的命令不能用,请使用日志的错误详细信息。

原因:这是由于强制停止redis快照,不能持久化引起的。edis在保存数据到硬盘时为了避免主进程假死,需要Fork一份主进程,然后在Fork进程内完成数据保存到硬盘的操作,如果主进程使用了4GB的内存,Fork子进程的时候需要额外的4GB,此时内存就不够了,Fork失败,进而数据保存硬盘也失败了。

解决:config set stop-writes-on-bgsave-error no 命令来关闭配置项stop-writes-on-bgsave-error。详细解析


三、解析配置文件:

一开始就先全部罗列解析一次吧(其实是基本的翻译啦),,不过下面会有重点关注提醒!!

好吧,终于罗列完了,其实这个罗列大多方便自己复习的时候用而已。接下来,我们来看看我们需要重点关注的配置吧:


四、重点配置:(针对初学者,进阶的我们往后以方案形式来讲)

(1).Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

daemonize no

(2).当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定

pidfile /var/run/redis.pid

(3).指定Redis监听端口,默认端口为6379

port 6379

(4).绑定的主机地址

bind 127.0.0.1

(5).当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能

timeout 300

(6)指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose

loglevel debug

(7)设置数据库的数量,默认数据库为0,可以使用SELECT 命令在连接上指定数据库id

databases 16

(8) 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合

save 900 1

save 300 10

save 60 10000

(9)指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大

rdbcompression yes

(10)指定本地数据库文件名,默认值为dump.rdb

dbfilename dump.rdb

(11)指定本地数据库存放目录

dir ./

(12)设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步

slaveof

(13)当master服务设置了密码保护时,slav服务连接master的密码

masterauth

(14)设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH 命令提供密码,默认关闭

requirepass foobared

(15)设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息

maxclients 128

(16)指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no

appendonly no

(17)指定更新日志文件名,默认为appendonly.aof

appendfilename appendonly.aof

(18)指定更新日志条件,共有3个可选值:

no:表示等操作系统进行数据缓存同步到磁盘(快)

always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)

everysec:表示每秒同步一次(折衷,默认值)

appendfsync everysec


demo以及博客都在这里面啦!!!

J2EE项目系列(四)–SSM框架构建积分系统和基本商品检索系统(Spring+SpringMVC+MyBatis+Lucene+Redis+MAVEN)

好了,这是第一篇,并不是讲方案的一篇,大概介绍下,并写个helloworld而已。往后我会针对一些方案来写些redis的demo给大家。欢迎关注!!!欢迎在下面指出错误,共同学习!!你的点赞是对我最好的支持!!

更多内容,可以访问JackFrost的博客

码字很辛苦,转载请注明来自JackFrost《Redis系列(一)–安装、helloworld以及读懂配置文件》

Leave a Reply

Your email address will not be published. Required fields are marked *