专栏首页张善友的专栏CentOS 6上的redis搭建实战记录

CentOS 6上的redis搭建实战记录

redis 是一个基于内存的高性能key-value数据库,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注。他的特点是支持各种数据结构,stirng,hashes, list,set,和sorted sets

1、下载安装

wget http://download.redis.io/redis-stable.tar.gz

tar -zxvf redis-stable.tar.gz

cd redis-stable

make

make test 检查一下是否正常,遇到2个错误

[root@localhost redis-stable]# make test cd src && make test make[1]: Entering directory `/usr/local/src/redis-stable/src' which: no tclsh8.5 in (/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/geffzhang/bin) You need 'tclsh8.5' in order to run the Redis test make[1]: *** [test] 错误 1 make[1]: Leaving directory `/usr/local/src/redis-stable/src' make: *** [test] 错误 2 [root@localhost redis-stable]#

没安装tcl

按照官网http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html 上的安装

make install

mkdir -p /usr/local/bin cp -pf redis-server /usr/local/bin cp -pf redis-benchmark /usr/local/bin cp -pf redis-cli /usr/local/bin cp -pf redis-check-dump /usr/local/bin cp -pf redis-check-aof /usr/local/bin make[1]: Leaving directory `/usr/local/src/redis-stable/src' [root@localhost redis-stable]#

好了,现在redis就安装成功了

Redis 由四个可执行文件:redis-benchmarkredis-cliredis-serverredis-stat 这四个文件,加上一个redis.conf就构成了整个redis的最终可用包。它们的作用如下:

  • redis-server:Redis服务器的daemon启动程序
  • redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
  • redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
  • redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

现在就可以启动redis了,redis只有一个启动参数,就是他的配置文件路径。

redis-server /etc/redis.conf

注意,默认复制过去的redis.conf文件的daemonize参数为no,所以redis不会在后台运行,这时要测试,我们需要重新开一个终端。修改为yes则为后台运行redis。另外配置文件中规定了pid文件,log文件和数据文件的地址,如果有需要先修改,默认log信息定向到stdout.

下面是redis.conf的主要配置参数的意义:

  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名,不包括目录)
  • dir:数据快照的保存目录(这个是目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是6379

2、建立用户和日志目录 第一次启动时建议为Redis建立用户和日志目录

[root@localhost redis-stable]# useradd redis
[root@localhost redis-stable]# mkdir -p /var/lib/redis 
 #db文件放在这里,需要修改redis.conf
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# Also the Append Only File will be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis
[root@localhost redis-stable]# mkdir -p /var/log/redis
# Specify the log file name. Also 'stdout' can be used to force
# Redis to log on the standard output. Note that if you use standard
# output for logging but daemonize, logs will be sent to /dev/null
logfile /var/log/redis/redislog
[root@localhost redis-stable]# chown redis.redis /var/lib/redis 
[root@localhost redis-stable]# chown redis.redis /var/log/redis

3、配置Init脚本

Redis管理脚本基于Ubuntu 的发行版上的,Ubuntu的可以看这篇文章ubuntu安装启动redis,在Centos linux 上并不能用,下面有个脚本可以用于CentOS 。

用这个脚本管理之前,需要先配置下面的内核参数,否则Redis脚本在重启或停止redis时,将会报错,并且不能自动在停止服务前同步数据到磁盘上:

# vi /etc/sysctl.conf

vm.overcommit_memory = 1

然后应用生效:

# sysctl –p

建立redis启动脚本:

# vim /etc/init.d/redis
#!/bin/bash 
#    
# Init file for redis    
#    
# chkconfig: - 80 12    
# description: redis daemon    
#    
# processname: redis    
# config: /etc/redis.conf    
# pidfile: /var/run/redis.pid    
source /etc/init.d/functions    
#BIN="/usr/local/bin"    
BIN="/usr/local/bin"    
CONFIG="/etc/redis.conf"    
PIDFILE="/var/run/redis.pid"    
### Read configuration    
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"    
RETVAL=0    
prog="redis-server"    
desc="Redis Server"    
start() {    
        if [ -e $PIDFILE ];then    
             echo "$desc already running...."    
             exit 1    
        fi    
        echo -n $"Starting $desc: "    
        daemon $BIN/$prog $CONFIG    
        RETVAL=$?    
        echo    
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog    
        return $RETVAL    
}    
stop() {    
        echo -n $"Stop $desc: "    
        killproc $prog    
        RETVAL=$?    
        echo    
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE    
        return $RETVAL    
}    
restart() {    
        stop    
        start    
}    
case "$1" in    
  start)    
        start    
        ;;    
  stop)    
        stop    
        ;;    
  restart)    
        restart    
        ;;    
  condrestart)    
        [ -e /var/lock/subsys/$prog ] && restart    
        RETVAL=$?    
        ;;    
  status)    
        status $prog    
        RETVAL=$?    
        ;;    
   *)    
        echo $"Usage: $0 {start|stop|restart|condrestart|status}"    
        RETVAL=1    
esac    
exit $RETVAL

然后增加服务并开机自启动:

# chmod 755 /etc/init.d/redis   
# chkconfig --add redis    
# chkconfig --level 345 redis on    
# chkconfig --list redis

[root@localhost redis-stable]# service redis start
Starting Redis Server:                                     [确定]
[root@localhost redis-stable]# cat /var/log/redis/redislog
[14250] 14 Jul 22:23:15 * Server started, Redis version 2.4.15
[14250] 14 Jul 22:23:15 * The server is now ready to accept connections on port 6379
[14250] 14 Jul 22:23:15 - 0 clients connected (0 slaves), 717512 bytes in use
[14250] 14 Jul 22:23:20 - 0 clients connected (0 slaves), 717512 bytes in use
[14250] 14 Jul 22:23:25 - 0 clients connected (0 slaves), 717512 bytes in use
[14250] 14 Jul 22:23:30 - 0 clients connected (0 slaves), 717512 bytes in use
[14250] 14 Jul 22:23:35 - 0 clients connected (0 slaves), 717512 bytes in use
[root@localhost redis-stable]# 

centos 6.3 server 安装redis-2.4.15

在多台服务器上简单实现Redis的数据主从复制 Sentinel-Redis高可用方案(一):主从复制

Sentinel-Redis高可用方案(二):主从切换

Redis Sentinel:集群Failover解决方案(转载)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Redis 起步

    Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章: 1.Redis简介 ? Redis是一个key-value...

    张善友
  • Redis 在Centos Linux 上的启动脚本

    Redis管理脚本基于Ubuntu 的发行版上的,Ubuntu的可以看这篇文章ubuntu安装启动redis,在Centos linux 上并不能用,下面的脚本...

    张善友
  • Compass: 在你的应用中集成搜索功能

    驱动力 在许多应用程序中,用户总会提出搜索和查询领域实例的需求。他们或者希望构建一个进入应用程序的入口或者希望填充表单的机制。非常典型的解决方案是用浏览的方式(...

    张善友
  • Redis 4.x 5.x漏洞手动复现

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

    陈殷
  • redis集群的搭建和jedis的使用

    (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.

    用户5927264
  • JMeter访问redis缓存

    第二次工业革命在20世纪初, 基于劳动分工的电力驱动时代, 人类大量使用流水线的电气化时代, 20世纪70年代 电子技术,工业机器人的使用提升了生产效率...

    louiezhou001
  • Redis Cluster

    为何要搭建Redis集群。Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态...

    一点博客
  • Redis 4.x 5.xRCE的傻瓜式复现

    在车上无聊,突然看见redis出现的RCE,有大佬在github上方的poc,就用很卡的网在复现了一下,底层未知,先傻瓜式复现。

    用户5878089
  • redis主从配置+集群搭建

    当出现高并发流量情况 如果我们只有一个redis服务器  挂掉之后  网站的运营会出现问题. 我们可以多弄几台redis服务器,使得一台服务器挂掉自动切换到另一...

    憧憬博客
  • Redis:[单机]环境搭建

    注:建议给redis设置访问密码;若既不用bind限制访问源、也不设置访问密码,则会触发Redis的“保护模式”(感兴趣自己百度一下);

    WEBJ2EE

扫码关注云+社区

领取腾讯云代金券