debian 下安装 Redis
时间:2015-12-06 21:18 来源:linux.it.net.cn 作者:it
最近在使用redis,刚开始学习,一点一点慢慢积累,根据需求打算最终替换我的mysql库中的一个表,关于redis的介绍google之,下面先开始安装吧,使用系统为debian6。
下载最新的稳定版redis
?
1
wget
http://redis.googlecode.com/files/redis-2.4.16.tar.gz
安装
?
1
2
3
4
5
6
7
8
tarxzf
redis-2.4.16.tar.gz
cdredis-2.4.16
make
cpsrc/redis-server/usr/bin/
cpsrc/redis-cli/usr/bin/
cpsrc/redis-check-aof/usr/bin/
cpsrc/redis-check-dump/usr/bin/
cpsrc/redis-benchmark/usr/bin/
编写redis启动脚本:/etc/init.d/redis-server
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!
/bin/sh
###
BEGIN INIT INFO
#
Provides: redis-server
#
Required-Start: $syslog $remote_fs
#
Required-Stop: $syslog $remote_fs
#
Should-Start: $local_fs
#
Should-Stop: $local_fs
#
Default-Start: 2 3 4 5
#
Default-Stop: 0 1 6
#
Short-Description: redis-server - Persistent key-value db
#
Description: redis-server - Persistent key-value db
###
END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/redis-server
DAEMON_ARGS=/etc/redis/redis.conf
NAME=redis-server
DESC=redis-server
PIDFILE=/var/run/redis.pid
test-x
$DAEMON || exit0
test-x
$DAEMONBOOTSTRAP || exit0
set-e
case"$1"
in
start)
echo-n
"Starting
$DESC: "
touch$PIDFILE
chownroot:root
$PIDFILE
ifstart-stop-daemon
--start --quiet --umask007
--pidfile $PIDFILE --chuid root:root --exec$DAEMON
-- $DAEMON_ARGS
then
echo"$NAME."
else
echo"failed"
fi
;;
stop)
echo-n
"Stopping
$DESC: "
ifstart-stop-daemon
--stop --retry 10 --quiet --oknodo --pidfile $PIDFILE --exec$DAEMON
then
echo"$NAME."
else
echo"failed"
fi
rm-f
$PIDFILE
;;
restart|force-reload)
${0}
stop
${0}
start
;;
*)
echo"Usage:
/etc/init.d/$NAME {start|stop|restart|force-reload}"
>&2
exit1
;;
esac
exit0
制定配置文件/etc/redis/redis.conf,在redis的源码包中有一个redis.conf配置文件,拷贝至/etc/redis目录下,启动redis:/etc/init.d/redis-server start 即可启动redis,当然不使用启动脚本也是可以的,直接使用redis-server命令启动redis服务,需要在启动时手动指定一个redis.conf配置文件即可。
简单测试
?
1
2
3
4
5
6
root@redis#redis-cli
redis
127.0.0.1:6379> setredis
test
OK
redis
127.0.0.1:6379> get redis
"test"
redis
127.0.0.1:6379>
redis.conf详解
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#是否以后台进程运行,默认是no改为yes
daemonizeyes
#如果以后台进程运行,需要指定一个pid文件
pidfile/var/run/redis.pid
#服务监听端口
port
6379
#默认是注释掉的,监听所有端口,修改
bind
192.168.1.1
#客户端连接空闲多少秒后断开连接,0表示禁用该功能
timeout
0
#日志级别,有debug、notice、waring、verbose等模式
loglevel
verbose
#日志记录方式,如果以后台进程运行,日志输出至/dev/null
logfile
stdout
#是否把日志记录进syslog
syslog-enabled
no
#指定syslog标记,默认注释
syslog-ident
redis
#指定记录进syslog的级别,默认注释
syslog-facility
local0
#设置数据库的数量,默认为0
databases
16
############
SNAPSHOTTING ############
#在多长时间内有多少次更新操作就把数据保存到硬盘
#save
<seconds> <changes> 可以有多条规则
save
900 1
save
300 10
save
60 10000
#当dump数据至.rdb时是否开启LZF压缩,为了节省cpu可以关闭,默认开启。
rdbcompressionyes
#指定本地数据库文件名
dbfilename
dump.rdb
#本地数据库存放路径
dir/opt
############
REPLICATION ##############
#本机为从服务时设置主的ip和端口
#slaveof
<masterip> <masterport>
#当主使用requirepass设置了密码时,从连接主需要密码
#masterauth
<master-password>
#当从失去到主的连接,从的响应可以有两种行为,设置为yes时仍然响应客户端请求,
#设置为no时,给客户端响应error
sync
slave-serve-stale-datayes
#从每隔多长时间ping一次主,单位为秒
#repl-ping-slave-period
10
#Bulk
transfer I/O timeout或者主的data/ping响应超时
#repl-timeout
60
################
SECURITY ###############
#客户端在执行命令前需要经过密码验证
requirepasspasswd
################
LIMITS ################
#允许客户端同时连接的最大链接数,默认没有限制,0表示没限制,当达到最大限制后
#如果有新的连接过来,则会返回max
number of clients reached
maxclients
128
#设置redis可以使用的最大内存,当达到限制后redis会根据策略maxmemmory-policy移除相关key,如果根据策略设置不能移除相关key,redis返回一个错误。
maxmemory
1G
#当达到最大使用内存后,redis在移除key时使用的策略。
#volatile-lru
-> remove the key with an expire set using an LRU algorithm
#allkeys-lru
-> remove any key accordingly to the LRU algorithm
#volatile-random
-> remove a random key with an expire set
#allkeys->random
-> remove a random key, any key
#volatile-ttl
-> remove the key with the nearest expire time (minor TTL)
#noeviction
-> don't expire at all, just return an error on write operations
maxmemory-policy
volatile-lru
################
APPEND ONLY MODE #########
#是否在每次更新操作后把数据立即更新进磁盘中,开启后redis会把每个写操作追加进appendonly.aof文件中,这个紧急在开启redis服务时被加载
appendonly
no
#指定更新日志文件名
appendfilename
appendonly.aof
#指定更新日志条件,调用系统的fsync()把数据写入磁盘中,有三种模式:
#no
等待操作系统本身自己同步buffer数据,快
#always
每次更新log后同步数据,慢但安全
#everysec
每秒同步一次,折中做法
appendfsync
everysec
#
no-appendfsync-on-rewrite
no
#自动重写aof文件,0表示禁用此功能
auto-aof-rewrite-percentage
100
#定义在重写aof文件前,aof文件的最小值
auto-aof-rewrite-min-size
64mb
###################
SLOW LOG ##############
#慢查询记录,值记录命令操作时间,不包括同客户端连接之类的I/O操作,记录操作时间大于N微秒的,如果设置为负数,则禁用此功能
slowlog-log-slower-than
10000
#设置慢查询日志长度,默认是么有限制的,但是它会占用内存,所以最好限制一下
slowlog-max-len
128
##############
VIRTUAL MEMORY ############
#vm机制在redis2.4中强烈不建议使用,
#是否开启vm机制
vm-enabled
no
#虚拟内存文件存放路径,多个redis进程不能共享同一个文件
vm-swap-file/tmp/redis.swap
#将所有大于vm-max-memory的数据存入虚拟内存,0表示所有数据都存储在虚拟内存
vm-max-memory
0
#swap文件被分割成pages,对象可以存储在多个pages中,但是pages不能被多个对象共享,所以page大小定义得合适,单位bytes
vm-page-size
32
#swap文件中的内存页数,在磁盘上的每8
page会消耗1 byte,swap文件的大小是vm-page-size * vm-pages
vm-pages
134217728
#在同时读写swap文件的进程数
vm-max-threads
4
###############
ADVANCED CONFIG #########
#当hash中包含超过指定元素个数且最大的元素没有超过临界值,hash将以特殊的编码方式来存储
hash-max-zipmap-entries
512
#hash中一个元素的最大值
hash-max-zipmap-value
64
#同hash
list-max-ziplist-entries
512
list-max-ziplist-value
64
#同hash
set-max-intset-entries
512
#同hash
set
zset-max-ziplist-entries
128
zset-max-ziplist-value
64
activerehashingyes
#################
INCLUDES ############
#可以包含其他配置文件
#include
/path/to/local.conf
#include
/path/to/other.conf
(责任编辑:IT)
最近在使用redis,刚开始学习,一点一点慢慢积累,根据需求打算最终替换我的mysql库中的一个表,关于redis的介绍google之,下面先开始安装吧,使用系统为debian6。
下载最新的稳定版redis
?
?
?
简单测试
?
?
|