Redis编译安装

介绍

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Linux下编译安装

下载redis
############目前最新稳定版##########

[[email protected] ~]# wget http://download.redis.io/releases/redis-2.8.19.tar.gz

解压缩redis

[[email protected] ~]# tar xzf redis-2.8.19.tar.gz

编译redis

redis的编译非常简单,已经有现成的Makefile文件,直接运行make命令即可

[[email protected] redis-2.8.19]# cd redis-2.8.19
[[email protected] redis-2.8.19]# make

make命令执行完成后,会在src目录下生成6个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump、redis-sentinel,它们的作用如下:
redis-server:            Redis服务器的daemon启动程序
redis-cli:                Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
redis-benchmark:          Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
redis-check-aof:          更新日志检查
redis-check-dump:        用于本地数据库检查
redis-sentinel:          Redis实例的监控管理、通知和实例失效备援服务,是Redis集群的管理工具

安装redis

[[email protected] src]# make install

配置redis的配置文件

[[email protected] redis-2.8.19]# cp redis.conf /etc/

##########编辑Redis配置文件###################

[[email protected] redis-2.8.19]# vim /etc/redis.conf
    daemonize yes                      #37行    #是否以后台daemon方式运行,默认不是后台运行
    pidfile /var/run/redis/redis.pid    #41行    #redis的PID文件路径
    bind 10.168.85.25                  #64行    #绑定主机IP,默认值为127.0.0.1,我们是跨机器运行,所以需要更改
    logfile /var/log/redis/redis.log    #104行  #定义log文件位置,模式log信息定向到stdout,输出到/dev/null
    save 60 1000                        #145行  #重新定义快照的频率
    dir /usr/local/rdbfile              #188行  #本地数据库存放路径,默认为./,编译安装默认存在在/usr/local/bin下

启动测试Redis服务器
#############启动Redis服务器############

[[email protected] redis-2.8.19]# redis-server /etc/redis.conf

#############查看是否启动成功###########

[[email protected] redis-2.8.19]# ss -tanlp | grep redis
LISTEN    0      128            10.168.85.25:6379                    *:*      users:(("redis-server",17379,4))

#############测试Redis##################

[[email protected] redis-2.8.19]# redis-cli -h 10.168.85.25 -p 6379
10.168.85.25:6379> set test hello
OK
10.168.85.25:6379> get test
"hello"

更改内核信息
#############查看日志信息###############

[[email protected] redis-2.8.19]# tail -f /var/log/redis/redis.log
[5033] 04 Jan 15:47:05.378 # Server started, Redis version 2.8.19
[5033] 04 Jan 15:47:05.379 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1‘ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1‘ for this to take effect.
[5033] 04 Jan 15:47:05.379 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled‘ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
[5033] 04 Jan 15:47:05.380 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
[5033] 04 Jan 15:47:05.380 * DB loaded from disk: 0.000 seconds
[5033] 04 Jan 15:47:05.380 * The server is now ready to accept connections on port 6379

日志显示有两个关于内核设置的警告信息!
##############sysctl文件###############

[[email protected] ~]# echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
[[email protected] ~]# sysctl -p

#############kerbel####################

[[email protected] ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

重新启动Redis服务器
#######将缓存保存到硬盘上#####

[[email protected] ~]# redis-cli -h 10.168.85.25 -p 6379 BGSAVE
Background saving started

  

#######关闭Redis#############

[[email protected] ~]# redis-cli -h 10.168.85.25 -p 6379 SHUTDOWN

  

########启动Redis############

[[email protected] ~]# redis-server /etc/redis.conf

  

编辑Redis启动脚本

[[email protected] ~]# vi /etc/init.d/redis
#!/bin/sh
#
# redis        init file for starting up the redis daemon
#
# chkconfig:  - 20 80
# description: Starts and stops the redis daemon.
# Source function library.
. /etc/rc.d/init.d/functions
name="redis-server"
exec="/usr/local/bin/$name"                                  # 指定redis-server命令的位置(whereis redis-server)
pidfile="/var/run/redis/redis.pid"                            # 指定redis的pid文件路径(和配置文件里保持一致)
REDIS_CONFIG="/etc/redis.conf"                                # 指定redis的配置文件路径
[ -e /etc/sysconfig/redis ] && . /etc/sysconfig/redis
lockfile=/var/lock/subsys/redis
start() {
    [ -f $REDIS_CONFIG ] || exit 6
    [ -x $exec ] || exit 5
    echo -n $"Starting $name: "
    daemon --user ${REDIS_USER-redis} "$exec $REDIS_CONFIG"
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
stop() {
    echo -n $"Stopping $name: "
    killproc -p $pidfile $name
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
restart() {
    stop
    start
}
reload() {
    false
}
rh_status() {
    status -p $pidfile $name
}
rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart}"
        exit 2
esac
exit $?
[[email protected] ~]# chmod 700 /etc/init.d/redis
[[email protected] ~]# servcie redis restart

附加信息

Redis无法编译安装报错处理?
###########make时错误信息#########
[[email protected] redis-2.8.19]# make
cd src && make all
make[1]: Entering directory `/root/redis-2.8.19/src‘
    CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/root/redis-2.8.19/src‘
make: *** [all] Error 2

  

############解决方法#############
make MALLOC=libc

vm.overcommit_memory参数解析

如果内存情况比较紧张的话,需要设定内核参数overcommit_memory,指定内核针对内存分配的策略,其值可以是0、1、2。
      0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
      1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
      2,表示内核允许分配超过所有物理内存和交换空间总和的内存
Redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为 8G,这个时候也要同样分配8G的内存给child, 如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)。
设置方式有两种,需确定当前用户的权限活使用root用户修改:
    1:重设文件 echo 1 > /proc/sys/vm/overcommit_memory(默认为0)
    2: echo "vm.overcommit_memory=1" >> /etc/sysctl.conf  && sysctl -p

Ubuntu 14.04下Redis安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm

Redis集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm

Ubuntu 12.10下安装Redis(图文详解)+ Jedis连接Redis http://www.linuxidc.com/Linux/2013-06/85816.htm

Redis系列-安装部署维护篇 http://www.linuxidc.com/Linux/2012-12/75627.htm

CentOS 6.3安装Redis http://www.linuxidc.com/Linux/2012-12/75314.htm

Redis安装部署学习笔记 http://www.linuxidc.com/Linux/2014-07/104306.htm

Redis配置文件redis.conf 详解 http://www.linuxidc.com/Linux/2013-11/92524.htm

时间: 2024-08-26 19:34:59

Redis编译安装的相关文章

redis 编译安装问题记录

redis 编译安装过程中出现问题汇总:通过解压方式安装,tar -zvxf redis-3.2.9.tar.gz进入 解压后的文件目录,如下cd /home/redis-3.2.9/进行编译安装,在编译安装过程中出现如下错误:[[email protected] redis-3.2.9]# makecd src && make allmake[1]: 进入目录"/home/redis-3.2.9/src"CC adlist.oIn file included from

windows下Redis编译安装

redis是现在比较流行的noSQL,主流大型网站都用的比较多,很多同学不知道怎么安装,这里介绍在windows下面安装以及扩展,提供学习使用,实际使用环境多在Linux下. 首先到相应网站下载redis: 下载完成后解压到任意盘符如:D:/redis 里面包括:如图所示. redis-server.exe:服务程序 redis-check-dump.exe:本地数据库检查 redis-check-aof.exe:更新日志检查 redis-benchmark.exe:性能测试,用以模拟同时由N个

redis 编译安装(生产环境推荐)

一.安装redis 1.下载redis包 wget http://download.redis.io/releases/redis-3.2.1.tar.gz 2.解压redis包到/opt下 tar -zxvf /home/redis-3.2.1.tar.gz -C /opt 3.安装并测试redis cd /opt/redis-3.2.1/src make && make install make test 备注:若make test报错,提示安装tcl,则进行tcl的安装: 二.配置r

redis编译安装常见报错

gcc编译redis时报错: zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory zmalloc.h:55:2: error: #error "Newer version of jemalloc required" 原因是jemalloc重载了Linux下的ANSI C的malloc和free函数.解决办法:make时添加参数. make MALLOC=libc 原文地址:https://www.

nosql之redis简单安装与使用

redis基础应用场景: web间session共享,即多个war工程共享一个session 分布式缓存,因为redis为键值对存储,提供了丰富的adapter可以支持C..net.java客户端,因此平台间进行数据交换起到了作用 因此它可以用作大型系统的分布式缓存,并且其setnx的锁常用于秒杀,抢红包这种电商活动场景中 下载:redis:http://download.redis.io/releases/ redis编译安装 tar xf redis-3.0.7.tar.gz cd redi

redis5.0编译安装

1.下载源码 https://redis.io/ 2.将源码上传到服务器中,进行编译安装 a)可以使用rz进行上传(sz是将服务端的文件下载到本地)b)tar -xzvf 5.0-redis.tar 3.可以查看READER.me文件,该文件有编译步骤 make MALLOC=jemalloc 4.将运行文件和配置文件放入/usr/local/redis目录下 mkdir -p /usr/local/redis/bin /usr/local/redis/conf cp redis-benchma

Linux下Redis的编译安装

介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更

CentOS 7 编译安装Redis

在CentOS(Linux)下编译安装Redis(V2.8.19)之后,总结的注意事项如下: 下载安装Redis: $ wget http://download.redis.io/releases/redis-2.8.19.tar.gz $ tar xzf redis-2.8.19.tar.gz $ cd redis-2.8.19 $ make TIPS: 可先到官网下载Redis文件,同时可以查看官网的编译安装方法( 传送门 ). 在Redis根目录下,直接 make make 成功后,如果需

linux下安编译安装redis

1.先进入要安装到的目录,比如我要把redis安装到/usr/local/redis下,那就先进入/usr/local cd /usr/local 2.然后下载安装包,并解压 wget http://download.redis.io/releases/redis-3.0.2.tar.gz tar -xvf redis-3.0.2.tar.gz mv redis-3.0.2 redis cd redis 3.编译安装 make make install 4.修改配置 vi redis.conf