Redis
是一个开源的key-value
类型的存储系统,大部分数据存在于内存中,全部读写速度十分快。其支持的存储value
数据类型有多种,如:strings
、hashes
、lists
、sets
、sorted sets
等等,这些数据类型都支持push/pop
、add/remove
等丰富的操做,而且是原子性的。此外,redis
还支持周期性的更新数据到磁盘或者追加到记录文件,来实现master-slave
数据同步的功能。html
在MacOS
系统上安装redis
的方式有多种,能够用homebrew
一键安装:git
$ brew install redis
若是提示权限问题,请使用github
sudo brew install redis
此种方法再也不介绍。下面来介绍一下源码安装的方式:redis
1. 下载源码数据库
源码地址:https://redis.io/缓存
首先须要到redis
官网下载源码,而后解压,若是是在终端里解压,可使用以下命令,解压到当前目录:安全
$ tar -zxf redis-4.0.0
2. 编译服务器
redis
是C
语言开发的系统,须要gcc
的编译器,若是没有C
的编译器,能够用homebrew
安装一下:app
$ brew install gcc
redis
里包含了makefile
,简化了编译步骤,直接使用make
就能够编译:异步
$ make
在编译完成后,须要把redis
的命令安装到/usr/local/bin
目录中,能够直接使用make install
命令,若是但愿安装到指定目录,须要指定PREFIX
的目录。
1. 安装
make PREFIX=/usr/local/redis-4.0.0 install
若是/usr/local
目录下没有redis-4.0.0
的目录,须要建立,若是在终端中直接使用mkdir redis-4.0.0
出现提示权限问题,则能够在图形化界面中建立,可是须要输入密码,这样建立的目录的owner
用户是当前用户,而不是root
用户,由于root
用户在后面须要自动建立日志文件时会遇到权限的问题。
PREFIX=/usr/local/redis-4.0.0
表示指定redis
的安装目录
2. redis配置
把源码目录下的redis.conf
文件拷贝到/usr/local/redis-4.0.0/etc
目录下,而后按以下提示修改代码:
#修改成守护模式 daemonize yes #设置进程锁文件 pidfile /usr/local/redis/redis.pid #端口 port 6379 #客户端超时时间 timeout 300 #日志级别 loglevel debug #日志文件位置 logfile /usr/local/redis/log-redis.log #设置数据库的数量,默认数据库为0,可使用SELECT <dbid>命令在链接上指定数据库id databases 8 ##指定在多长时间内,有多少次更新操做,就将数据同步到数据文件,能够多个条件配合 #save <seconds> <changes> #Redis默认配置文件中提供了三个条件: save 900 1 save 300 10 save 60 10000 #指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,若是为了节省CPU时间, #能够关闭该#选项,但会致使数据库文件变的巨大 rdbcompression yes #指定本地数据库文件名 dbfilename dump.rdb #指定本地数据库路径 dir /usr/local/redis/db/ #指定是否在每次更新操做后进行日志记录,Redis在默认状况下是异步的把数据写入磁盘,若是不开启,可能 #会在断电时致使一段时间内的数据丢失。由于 redis自己同步数据文件是按上面save条件来同步的,因此有 #的数据会在一段时间内只存在于内存中 appendonly no #指定更新日志条件,共有3个可选值: #no:表示等操做系统进行数据缓存同步到磁盘(快) #always:表示每次更新操做后手动调用fsync()将数据写到磁盘(慢,安全) #everysec:表示每秒同步一次(折衷,默认值) appendfsync everysec
在redis
的官网上面有教程,能够参考学习。
启动redis
服务(在redis-4.0.0
目录下):
$ ./bin/redis-server etc/redis.conf
启动redis
客户端:
$ ./bin/redis-cli
另外,咱们也能够查看redis
的日志文件log-redis.log
,能够看到redis
的操做变化。
$ tail -f log-redis.log
redis
的环境搭建如上所示,在现在的服务器应用开发过程当中,用redis
作缓存的应用仍是十分普遍的,文中不足之处,还望互相交流学习。参考资料