下载、解压、重命名并且编译安装Redis
~ wget http://download.redis.io/releases/redis-3.0.5.tar.gz
~ tar xzf redis-3.0.5.tar.gz
~ mv redis-3.0.5 redis
~ cd redis
~ make
~ make test
~ make install
配置文件redis.conf
redis解压目录里有一个配置文件redis.conf
,编辑此配置文件,找到dir ./
这一行。redis会将内存中的数据写入文件中,而此配置就是指定数据文件保存的路径。指定你的本机路径的目录为:dir /User/you_path/redis_data/
编辑过后,将配置文件移动到/usr/local/etc
目录下
~ sudo mv redis.conf /usr/local/etc
启动Redis
终端输入:
~ cd /usr/local/etc/
~ redis-server redis.conf
服务启动成功画面:
测试连通性
~ cd /usr/local/bin
~ ./redis-cli
127.0.0.1:6379> set a hi
OK
127.0.0.1:6379> get a
"hi"
设置开机自动启动redis server
新建plist文件
~ sudo vi /Library/LaunchDaemons/io.redis.redis-server.plist
文件内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>io.redis.redis-server</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/redis-server</string>
<string>/usr/local/etc/redis.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
使用launchctl设置开机自动启动
~ sudo launchctl load /Library/LaunchDaemons/io.redis.redis-server.plist
使用launchctl启动redis server
~ sudo launchctl start io.redis.redis-server
使用launchctl停止redis server
~ sudo launchctl stop io.redis.redis-server
redis配置文件主要参数解析参考
daemonize no
#redis进程是否以守护进程的方式运行,yes为是,no为否(不以守护进程的方式运行会占用一个终端)
pidfile /var/run/redis.pid
#指定redis进程的PID文件存放位置
port 6379
#redis进程的端口号
bind 127.0.0.1
#绑定的主机地址
timeout 300
#客户端闲置多长时间后关闭连接,默认此参数为0即关闭此功能
loglevel verbose
#redis日志级别,可用的级别有debug.verbose.notice.warning
logfile stdout
#log文件输出位置,如果进程以守护进程的方式运行,此处又将输出文件设置为stdout的话,就会将日志信息输出到/dev/null里面去了
databases 16
#设置数据库的数量,默认为0可以使用select <dbid>命令在连接上指定数据库id
save <seconds> <changes>
#指定在多少时间内刷新次数达到多少的时候会将数据同步到数据文件;
rdbcompression yes
#指定存储至本地数据库时是否压缩文件,默认为yes即启用存储;
dbfilename dump.db
#指定本地数据库文件名
dir ./
#指定本地数据问就按存放位置;
slaveof <masterip> <masterport>
#指定当本机为slave服务时,设置master服务的IP地址及端口,在redis启动的时候他会自动跟master进行数据同步
masterauth <master-password>
#当master设置了密码保护时,slave服务连接master的密码;
requirepass footbared
#设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过AUTH<password>命令提供密码,默认关闭
maxclients 128
#设置同一时间最大客户连接数,默认无限制;redis可以同时连接的客户端数为redis程序可以打开的最大文件描述符,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
maxmemory<bytes>
#指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区
appendonly no
#指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
appendfilename appendonly.aof
#指定跟新日志文件名默认为appendonly.aof
appendfsync everysec
#指定更新日志的条件,有三个可选参数no:表示等操作系统进行数据缓存同步到磁盘(快),always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全), everysec:表示每秒同步一次(折衷,默认值);