安装
下载好redis-2.8.12.tar.gz放在/usr/local下
tar zxvf redis-2.8.12.tar.gz 解压缩cd /usr/local/redis-2.8.12makecd srcmake install
默认的配置文件redis.conf,拷贝到固定的目录下
mkdis /etc/redis 系统配置存放于/etc下cp redis.conf /etc/redis
运行
redis-server /etc/redis/redis.conf 启动服务端
测试
通过客户端命令redis-cli访问Redis
# redis-cli redis> set name zlex OK redis> get name "zlex"
关闭
redis-cli shutdown
调优
1./etc/sysctl.conf
需要修改/etc/sysctl.conf 末尾追加vm.overcommit_memory = 1 然后执行sysctl vm.overcommit_memory=1
2./proc/sys/vm/overcommit_memory
内存分配策略文件/proc/sys/vm/overcommit_memory
表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
表示内核允许分配超过所有物理内存和交换空间总和的内存
默认为0,如果内存情况比较紧张的话,设为1
3.redis.conf
daemonize yes #守护进程模式 save 60 1000 #当时间间隔超过60秒,或存储超过1000条记录时,进行持久化。 maxmemory 256mb #分配256MB内存
PS:切记,一定要设定maxmemmory,且配置大小要小于物理内存,留有足够的内存供系统使用。
集群配置
配置Mater-Slave,只需要在Slave上配置Master节点IP Port
例如Master IP为192.168.30.234 端口为6379,配置slave的redis.conf:
slaveof 192.168.30.234
PS:为了两个Redis Server可以互访,需要注释掉bind 127.0.0.1
依次启动Master Slave
可作简单测试,Master写,Slave读
主从备份
在从服务器上执行下列命令:
#备份 redis-cli save #关闭 redis-cli shutdown
然后,拷贝数据目录下的rdb文件。
系统服务
习惯了通过service启动一切服务,新建文件并赋予权限:
touch /etc/init.d/redis-serverchmod +x /etc/init.d/redis-server
编辑/etc/init.d/redis-server,键入如下内容
#!/bin/bash # # redis Startup script for redis processes # # author: snowolf # # processname: redis redis_path="/usr/local/bin/redis-server" redis_conf="/etc/redis/redis.conf" redis_pid="/var/run/redis.pid" # Source function library. . /etc/rc.d/init.d/functions [ -x $redis_path ] || exit 0 RETVAL=0 prog="redis" # Start daemons. start() { if [ -e $redis_pid -a ! -z $redis_pid ];then echo $prog" already running...." exit 1 fi echo -n $"Starting $prog " # Single instance for all caches $redis_path $redis_conf RETVAL=$? [ $RETVAL -eq 0 ] && { touch /var/lock/subsys/$prog success $"$prog" } echo return $RETVAL } # Stop daemons. stop() { echo -n $"Stopping $prog " killproc -d 10 $redis_path echo [ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog RETVAL=$? return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status $prog RETVAL=$? ;; restart) stop start ;; condrestart) if test "x`pidof redis`" != x; then stop start fi ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart}" exit 1 esac exit $RETVAL
# service redis-server restartStopping redis [失败]Starting redis [确定]# service redis-server status redis (pid 14965) 正在运行...
很方便!