CentOS 6.5下Redis安装记录

Redis简介:

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

安装环境:

CentOS 6.5

Redis 2.8.13

下载安装:

下载文件到 /opt/ 目录下

wget http://download.redis.io/releases/redis-2.8.13.tar.gz

解压文件

tar zxvf redis-2.8.13.tar.gz

切换目录到 redis-2.8.13 目录下

cd redis-2.8.13

执行make命令,最后几行的输出结果

Hint: To run 'make test' is a good idea ;)
make[1]: Leaving directory `/opt/redis-2.8.13/src'

执行安装命令

make install

提示:

cd src && make install
make[1]: Entering directory `/opt/redis-2.8.13/src'

Hint: To run 'make test' is a good idea ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
make[1]: Leaving directory `/opt/redis-2.8.13/src'
 根据提示,执行:cd src && make install
提示:

Hint: To run 'make test' is a good idea ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL instal
按照提示执行:make test

提示:

You need tcl 8.5 or newer in order to run the Redis test
make: *** [test] Error 1
解决方法参考:http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html

也可以使用:yum install tcl 命令安装

后来经搜索发现不需要安装,直接到src目录下执行 ./redis-server 就可以

CentOS 6.5下Redis安装记录
可以使用类似 ./redis-server /path/to/redis.conf 命令指定配置文件;

Server started, Redis version 2.8.13
The server is now ready to accept connections on port 6379

服务启动成功,服务已经在6379端口上监听连接请求。

你可以使用内置的客户端连接Redis:http://www.redis.cn/download.html

$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"

注意事项:

要远程访问它,还需要开启防火墙端口,
要保持服务的运行可以直接关闭终端窗口,但不要使用Ctrl+C,这样会使程序退出。
2016-06-04更新
wget http://download.redis.io/releases/redis-3.2.0.tar.gz
tar -zxvf redis-3.2.0.tar.gz
cd redis-3.2.0
make
src/redis-server ./redis.conf
几行命令就OK了,参考:http://redis.io/download
可能遇到的错误:
/bin/sh: cc: command not found
这是因为没有安装 gcc,使用以下命令安装: 
yum -y install gcc

Redis配置文件redis.conf详解

1.基本配置
内存单位的表示

# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes

单位中不区分大小写1GB 1Gb 1gB是一样的

后台运行,yes是后台运行,no前台运行,将输出,输出到终端(默认)

daemonize yes

如果daemonize参数为yes的话就会产生pid文件,一下是pid文件的定义

pidfile /usr/local/redis-master/run/redis.pid

监听的端口

port 6379

绑定监听的IP地址

bind 127.0.0.1

如果在本地调用redis可以直接用sock文件

unixsocket /tmp/redis.sock  //sock文件的位置

unixsocketperm 755            //sock文件的权限

如果一个链接在N秒内是空闲的,就将其关闭

timeout 0

如果对方down了或者中间网络断了发送ACK到客户端在指定的时间内没有收到对方的回应就断开TCP链接(时间单位秒记),此参数会受到内核参数的影响,推荐配置60。

tcp-keepalive 0

指定输出消息的级别

# debug (调试级别,详细信息,信息量大)
# verbose (详细信息,信息量较大)
# notice (通知,生产环境推荐)
# warning (错误信息警告信息)

loglevel notice

日志输出文件,默认在前端运行的时候此key的默认值是stdout输出到终端,如果用守护进程运行此key的stdout的时候将日志输入到/dev/null,如果想记录日志,就必须为其指定logfile位置

logfile /var/log/redis.log

将日志记录的哦syslog

syslog-enabled no

指定syslog的身份

syslog-ident redis

指定syslog的级别,必须是LOCAL0-LOCAL7之间

syslog-facility local0

设置数据库的数量

databases 16

设置数据库的数量。默认数据库DB 0,你可以选择一个不同的per-connection的使用SELECT<dbid>这儿的DBID是一个介于0和'databases'-1

databases 16

2.快照配置

将DB保存到磁盘的规则定义(快照)

格式:save <seconds> <changes>

例子:save 900 1  //在900秒(15分钟)内如果至少有1个键值发生变化  就保存

            save 300 10  //在300秒(6分钟)内如果至少有10个键值发生变化  就保存  
save 900 1                      //每一条表示一个存盘点
save 300 10
save 60 10000

如果启用如上的快照(RDB),在一个存盘点之后,可能磁盘会坏掉或者权限问题,redis将依然能正常工作

stop-writes-on-bgsave-error yes

是否将字符串用LZF压缩到.rdb 数据库中,如果想节省CPU资源可以将其设置成no,但是字符串存储在磁盘上占用空间会很大,默认是yes

rdbcompression yes

rdb文件的校验,如果校验将避免文件格式坏掉,如果不校验将在每次操作文件时要付出校验过程的资源新能,将此参数设置为no,将跳过校验

rdbchecksum yes

转储数据的文件名

dbfilename dump.rdb

redis的工作目录,它会将转储文件存储到这个目录下,并生成一个附加文件

dir /usr/local/redis-master/db

3.主从参数
如果本地是salve服务器那么配置该项

# slaveof <masterip> <masterport>

slaveof 127.0.0.1 65532

master的验证密码

masterauth <master-password>

当从主机脱离主的链接时,如果此值为yes当客户端查询从时,回响应客户端,如果是第一次同步回返回一个日期数据或这空值,如果设置为no,则返回“SYNC with master in progress”到INFO and SLAVEOF

slave-serve-stale-data yes

从服务器只读(默认)

slave-read-only yes

从发送ping到主的时间间隔(单位:秒)

repl-ping-slave-period 10

批量传输I / O超时和主数据或ping响应超时 默认60s 必须大于repl-ping-slave-period值

repl-timeout 60

此选项如果是“yes”那么Redis的使用数量较少的TCP数据包和更少的带宽将数据发送到,在从主机上延迟40毫秒(linux kernel中的40毫秒)出现。如果是no将在slave中减少延迟,但是流量使用回相对多一些,如果用多个从主机,此处建议设置成yes

repl-disable-tcp-nodelay no

从主机的优先级,如果当主主机挂了的时候,将从从主机中选取一个作为其他从机的主,首先优先级的数字最低的将成为主,0是一个特殊的级别,0将永远不会成为主。默认值是100.

slave-priority 100

上一篇:基于android4.4系统行车记录应用黑屏问题分析及对策


下一篇:【Swift】 应用内显示 AppStore 某个应用的详情