当前位置:8090st.com >环境搭建 > 查看文章
阿里云优惠码

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists),集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

安装环境 centos6.7 redis3.2 编译安装与配置

软件准备:
– redis-3.2.0.tar.gz
– tcl-8.5.7-6.el6.x86_64.rpm

目录规划:
/root/software #软件存放目录
/usr/local/redis-3.2.0 #redis安装目录
/usr/local/redis #redis工作目录(安装目录的软连接)
/etc/redis/redis-6379.conf #redis配置文件存放,配置文件命名:redis-6379.conf
/usr/local/redis/6379/data #redis持久化数据存储目录
/usr/local/redis/redis-6379.log #redis日志
/var/run/redis_6379.pid #redisPID目录(默认)

1、安装准备
yum -y install gcc gcc-* automake autoconf libtool make zlib zlib-devel glibc-* tcl tree

创建安装目录:
mkdir /usr/local/redis-3.2.0
#创建软连接:
ln -s /usr/local/redis-3.2.0 /usr/local/redis

软件存放目录
mkdir /root/software
wget http://download.redis.io/releases/redis-3.2.0.tar.gz -P /root/software

2、安装 redis-3.2.0
cd /root/software
tar xzf redis-3.2.0.tar.gz
cd redis-3.2.0

make test
make MALLOC=libc
make PREFIX=/usr/local/redis install

3、配置redis
创建配置文件存放目录、持久化文件存储目录:
mkdir /etc/redis /usr/local/redis/6379/data
配置文件创建:
cp /root/software/redis-3.2.0/redis.conf /etc/redis/redis-6379.conf

配置文件修改:
vim /etc/redis/redis-6379.conf

修改如下参数值:
bind 0.0.0.0
timeout 30
daemonize yes
pidfile /var/run/redis_6379.pid
logfile “/usr/local/redis/redis-6379.log”
dir /usr/local/redis/6379/data
requirepass 123456
maxclients 10000
maxmemory 500mb

修改后配置如下:
[root@demo1 redis]# grep -v “^#” /etc/redis/redis-6379.conf |grep -v “^$”
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 30
tcp-keepalive 0
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile “/usr/local/redis/redis-6379.log”
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /usr/local/redis/6379/data
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
requirepass 123456
maxclients 10000
maxmemory 500mb
appendonly no
appendfilename “appendonly.aof”
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events “”
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

redis3.2 版本新增默认参数:
protected-mode yes
supervised no
list-max-ziplist-size -2
list-compress-depth 0
aof-rewrite-incremental-fsync yes

4、手动启动/停止redis服务
cd /usr/local/redis/bin
./redis-server /etc/redis/redis-6379.conf
./redis-server –port 6379

控制台出现如下提示信息:
[31726] 16 Jan 15:30:32.946 # Unable to set the max number of files limit to 10032 (Operation not permitted), setting the max clients configuration to 992.
_._
_.-“__ ”-._
_.-“ `. `_. ”-._ Redis 3.2.0 (00000000/0) 64 bit
.-“ .-“`. “`\/ _.,_ ”-._
( ‘ , .-` | `, ) Running in stand alone mode
|`-._`-…-` __…-.“-._|’` _.-‘| Port: 6379
| `-._ `._ / _.-‘ | PID: 31726
`-._ `-._ `-./ _.-‘ _.-‘
|`-._`-._ `-.__.-‘ _.-‘_.-‘|
| `-._`-._ _.-‘_.-‘ | http://redis.io
`-._ `-._`-.__.-‘_.-‘ _.-‘
|`-._`-._ `-.__.-‘ _.-‘_.-‘|
| `-._`-._ _.-‘_.-‘ |
`-._ `-._`-.__.-‘_.-‘ _.-‘
`-._ `-.__.-‘ _.-‘
`-._ _.-‘
`-.__.-‘

[31726] 16 Jan 15:30:32.955 # Server started, Redis version 2.8.4
[31726] 16 Jan 15:30:32.955 * The server is now ready to accept connections on port 6379

停止redis服务
redis-cli -p 7030 shutdown

如果设置了密码123456,需用下面的命令停止:
redis-cli -p 6379 -a 123456 shutdown

5、redis启动脚本配置,并添加redis为系统服务

复制脚本到目录: /etc/rc.d/init.d/
cp redis-3.2.0/utils/redis_init_script /etc/init.d/redis-6379
(redis-3.2.0/utils/redis_init_script,在redis源码目录)
将redis_init_script复制到/etc/init.d/redis-6379,同时命名为redis-6379。

添加注册服务:
chkconfig –add redis-6379
将报以下错误:
redis 服务不支持 chkconfig
为此,我们需要更改redis脚本。

vim /etc/init.d/redis-6379

#!/bin/sh
# chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF=”/etc/redis/redis-${REDISPORT}.conf”

case “$1” in
start)
if [ -f $PIDFILE ]
then
echo “$PIDFILE exists, process is already running or crashed”
else
echo “Starting Redis server…”
$EXEC $CONF &
fi
if [ “$?” = “0” ]
then
echo “Redis is running…”
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo “$PIDFILE does not exist, process is not running”
else
PID=$(cat $PIDFILE)
echo “Stopping …”
$CLIEXEC -p $REDISPORT -a “123456” shutdown
while [ -x /proc/${PID} ]
do
echo “Waiting for Redis to shutdown …”
sleep 1
done
echo “Redis stopped”
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo “Usage: /etc/init.d/redis-${REDISPORT} {start|stop|restart|force-reload}” >&2
;;
esac

说明:
1)配置文件中也要指定redis运行的端口号为6379,以免启动多个redis实例时,产生混乱。
2)每一个启动/重启脚本对应一个redis配置文件;
3)每个redis.conf中的配置(端口,pid,日志路径/名称,数据保存路径等)都不能一样,以免产生数据覆盖,导致数据丢失或混乱。

与原文件相比,修改的部分如下:
1) 在第二行增加了:
#chkconfig: 2345 80 90

2) 原文件EXEC、CLIEXEC参数
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli

3) redis开启的命令,以后台运行的方式执行。(若已配置了daemonize yes,则该步骤可以省略…)
$EXEC $CONF &
ps:注意后面的那个”&”,即是将服务转到后面运行的意思,否则启动服务时,Redis服务将占据在前台,占用了主用户界面,造成其它的命令执行不了。

4) 将redis配置文件拷贝到/etc/redis/redis-${REDISPORT}.conf

5)启用认证
默认情况下,Redis未启用认证,可以通过开启 redis-6379.conf 的 requirepass 指定一个验证密码,如123456(实际情况建议密码稍微复杂点且每个配置密码不能一样)。

以上操作完成后,即可注册redis服务:

chkconfig –add redis

6、启动/停止redis服务
service redis-6379 start
service redis-6379 stop

7、环境变量配置
将redis的命令所在目录添加到系统参数PATH中
修改profile文件:
vi /etc/profile
在最后行追加:
export PATH=”$PATH:/usr/local/redis/bin”

然后应用这个文件:
. /etc/profile

这样就可以直接调用redis-cli的命令了,如下所示:

$ redis-cli
redis 127.0.0.1:6379> auth superman
OK
redis 127.0.0.1:6379> ping
PONG
redis 127.0.0.1:6379>

至此,redis 就成功安装了。

8、测试

带密码登录
redis-cli -h 192.168.71.128 -p 6379 -a 123456

进入Redis安装目录的bin子目录。
./redis-cli -h 127.0.0.1 -p 9999
127.0.0.1:9999> ping
PONG
127.0.0.1:9999> set name mcb
OK
127.0.0.1:9999> get name
“mcb”
redis>del name

相关文章
为您推荐
各种观点
暂时还木有人评论,坐等沙发!
发表评论

您必须 [ 登录 ] 才能发表留言!