Redis的使用总结

安装

下载好redis-2.8.12.tar.gz放在/usr/local下

tar zxvf redis-2.8.12.tar.gz 解压缩

cd /usr/local/redis-2.8.12

make

cd src

make 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-server

chmod +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 restart

Stopping redis [失败]

Starting redis [确定]

# service redis-server status

redis (pid 14965) 正在运行...

很方便!

猜你喜欢

转载自blog.csdn.net/yupi1057/article/details/81103999