Redis

高性能的 Key/value 数据库。

安装

wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz -C /usr/local/redis
cd /usr/local/redis
make

进入src目录

cp redis-server /usr/local/bin/
cp redis-cli /usr/local/bin/ 

redis-server: Redis服务器的daemon 启动程序。
redis-cli: Redis命令行操作工具。
redis-benchmark:性能测试工具,测试Redis在你的系统和配置下的读、写性能。

配置

编辑文件 redis.conf

daemonize:是否以后台daemon方式运行 //建议修改为yes

pidfile:pid文件位置

port:监听的端口号

timeout:请求超时时间

loglevel:log信息级别

logfile:log文件位置

databases:开启数据库的数量

save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。

rdbcompression:是否使用压缩

dbfilename:数据快照文件名(只是文件名,不包括目录)

dir:数据快照的保存目录(这个是目录)

appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。

appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

运行

redis-server /usr/local/redis/redis.conf  //启动REDIS服务

redis-cli ping

>> PONG // 成功返回PONG

多实例

一台Redis服务器,分成N个节点,每个节点分配一个端口(如:700070017002...),默认端口是6379

每个节点对应一个Redis配置文件,如: redis7000.confredis7001.confredis7002.confredis7003.conf

cp redis.conf redis7000.conf
cp redis.conf redis7001.conf
cp redis.conf redis7002.conf
cp redis.conf redis7003.conf

对每个实例配置,进行修改:

daemonize yes                   //run as a daemon

pidfile /var/run/redis7000.pid  //进程pid

port 7000           //端口号

loglevel verbose    //记录等级,可选值为(debug、verbose、notice、warning)

logfile stdout      //Specify the log file name

dir /data/redis/    //redis数据的存储路径

对所有的实例做如上修改。

启动多实例

redis-server /usr/local/redis/redis7000.conf
redis-server /usr/local/redis/redis7001.conf
redis-server /usr/local/redis/redis7002.conf
redis-server /usr/local/redis/redis7003.conf

主从配置

redis 支持 master-slave 的主从配置。配置方法:在从机的配置文件中修改slaveof 参数为主机的 ipport 即可。

内存配置

echo 1 > /proc/sys/vm/overcommit_memory

指定了内核针对内存分配的策略,其值可以是012
0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程
1:表示内核允许分配所有的物理内存,而不管当前的内存状态如何
2:表示内核允许分配超过所有物理内存和交换空间总和的内存

数据存储

Redis 的存储分为内存存储磁盘存储log文件 三部分。

save seconds updates:在指定时间内,达到多少次更新操作时,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。

appendonly yes/no:是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。
因为Redis本身同步数据文件是按上面的save条件来同步的,所以有的数据会在一段时间内只存在于内存中。

appendfsync no/always/everysec:no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。

相关软件

phpredis

Webdis

vboy1010
912 声望35 粉丝

清泉石上流


« 上一篇
Go安装
下一篇 »
Webdis安装