> 数据库 > Redis >

debian 下安装 Redis

最近在使用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)