这部分来自网络:

http://blog.csdn.net/cuibruce/article/details/53501532

1.下载

选取当前最新版本3.2.1下载,上传到linux上,进行解压缩:
[root@mongodb1 redis]# ls
redis-3.2.1 redis-3.2.1.tar.gz

2.编译安装

进入redis-3.2.1目录下,运行make进行安装编译:
[root@mongodb1 redis-3.2.1]# ls
00-RELEASENOTES BUGS CONTRIBUTING COPYING deps INSTALL Makefile MANIFESTO README.md redis.conf runtest runtest-cluster runtest-sentinel sentinel.conf src tests utils
make需要安装编译器,默认为gcc.
[root@mongodb1 redis-3.2.1]# make
cd src && make all
make[1]: Entering directory `/root/redis/redis-3.2.1/src'
CC adlist.o
CC quicklist.o
CC ae.o
In file included from ae.c:53:
ae_epoll.c: In function 'aeApiAddEvent':
ae_epoll.c:75: warning: missing initializer
ae_epoll.c:75: warning: (near initialization for 'ee.data')
ae_epoll.c: In function 'aeApiDelEvent':
ae_epoll.c:92: warning: missing initializer
ae_epoll.c:92: warning: (near initialization for 'ee.data')
CC anet.o
anet.c: In function 'anetSockName':
anet.c:640: warning: dereferencing pointer 's' does break strict-aliasing rules
anet.c:638: note: initialized from here
anet.c:644: warning: dereferencing pointer 's' does break strict-aliasing rules
anet.c:642: note: initialized from here
anet.c: In function 'anetPeerToString':
anet.c:584: warning: dereferencing pointer 's' does break strict-aliasing rules
anet.c:582: note: initialized from here
anet.c:588: warning: dereferencing pointer 's' does break strict-aliasing rules
anet.c:586: note: initialized from here
anet.c: In function 'anetTcpAccept':
anet.c:555: warning: dereferencing pointer 's' does break strict-aliasing rules
anet.c:553: note: initialized from here
anet.c:559: warning: dereferencing pointer 's' does break strict-aliasing rules
anet.c:557: note: initialized from here
CC dict.o
CC server.o
CC sds.o
CC zmalloc.o
CC lzf_c.o
CC lzf_d.o
CC pqsort.o
CC zipmap.o
CC sha1.o
CC ziplist.o
CC release.o
CC networking.o
CC util.o
CC object.o
CC db.o
CC replication.o
CC rdb.o
CC t_string.o
CC t_list.o
CC t_set.o
CC t_zset.o
CC t_hash.o
CC config.o
CC aof.o
CC pubsub.o
CC multi.o
CC debug.o
CC sort.o
CC intset.o
CC syncio.o
CC cluster.o
CC crc16.o
CC endianconv.o
CC slowlog.o
CC scripting.o
CC bio.o
CC rio.o
CC rand.o
CC memtest.o
CC crc64.o
CC bitops.o
CC sentinel.o
CC notify.o
CC setproctitle.o
CC blocked.o
CC hyperloglog.o
CC latency.o
CC sparkline.o
CC redis-check-rdb.o
CC geo.o
LINK redis-server
INSTALL redis-sentinel
CC redis-cli.o
LINK redis-cli
CC redis-benchmark.o
LINK redis-benchmark
INSTALL redis-check-rdb
CC redis-check-aof.o
LINK redis-check-aof
 
Hint: It's a good idea to run 'make test' ;)
 
make[1]: Leaving directory `/root/redis/redis-3.2.1/src'
make完成之后,进行install,默认安装路径为/usr/local/bin下,这里我们把他安装目录放到/usr/local/redis下,使用PREFIX指定目录:

[root@mongodb1 redis-3.2.1]# mkdir /usr/local/redis
[root@mongodb1 redis-3.2.1]# make PREFIX=/usr/local/redis install
cd src && make install
make[1]: Entering directory `/root/redis/redis-3.2.1/src'
 
Hint: It's a good idea to run 'make test' ;)
 
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: Leaving directory `/root/redis/redis-3.2.1/src'
将redis可执行目录添加到环境变量中,编辑~/.bash_profile添加redis环境变量:

[root@mongodb1 bin]# cat ~/.bash_profile
# .bash_profile
 
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
 
# User specific environment and startup programs
 
PATH=/usr/local/redis/bin:/usr/local/mongodb/bin:$PATH:$HOME/bin

3.创建redis服务

此时其实就可以启动redis服务了,例如:
% ./redis-server --port 9999 --slaveof 127.0.0.1 6379
% ./redis-server /etc/redis/6379.conf --loglevel debug
但是我们一般还是把redis做成服务来启动,进入到utils目录,然后运行install_server.sh,运行这个会询问你几个问题,包括
指定redis的端口号
指定redis的配置文件
指定redis的日志文件
指定redis的数据目录文件
指定redis的可执行目录文件.
[root@mongodb1 utils]# ./install_server.sh
Welcome to the redis service installer
This script will help you easily set up a running redis server
 
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] /data/redis/log/redis_6378.log
Please select the data directory for this instance [/var/lib/redis/6379] /data/redis/6379
Please select the redis executable path [/usr/local/redis/bin/redis-server]
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /data/redis/log/redis_6378.log
Data dir : /data/redis/6379
Executable : /usr/local/redis/bin/redis-server
Cli Executable : /usr/local/redis/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!
完成之后,redis的服务就添加完毕了,服务名为redis_6379:
[root@mongodb1 init.d]# ls -l re*
-rwxr-xr-x 1 root root 1714 Jul 1 11:13 redis_6379
-rwxr-xr-x. 1 root root 1822 Jan 16 2013 restorecond
启动和关闭redis服务:
[root@mongodb1 init.d]# service redis_6379 status
Redis is running (19280)
[root@mongodb1 init.d]# service redis_6379 stop
Stopping ...
Redis stopped
[root@mongodb1 init.d]# service redis_6379 start
Starting Redis server...
使用redis-cli连接redis:
[root@mongodb1 init.d]# redis-cli
127.0.0.1:6379>

4.redis服务解析

其实做完以上几步,我们已经可以正常使用redis了,下面我们来解析一下redis的启动停止过程.我们解析/etc/init.d/redis_6379文件:
#!/bin/sh
#Configurations injected by install_server below....
 
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/etc/redis/6379.conf"
REDISPORT="6379"
###############
# SysV Init Information
# chkconfig: - 58 74
# description: redis_6379 is the redis daemon.
### BEGIN INIT INFO
# Provides: redis_6379
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop redis_6379
# Description: Redis daemon
### END INIT INFO
 
 
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
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
status)
PID=$(cat $PIDFILE)
if [ ! -x /proc/${PID} ]
then
echo 'Redis is not running'
else
echo "Redis is running ($PID)"
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Please use start, stop, restart or status as first argument"
;;
esac
可以发现,其实启动redis的语法就是:
/usr/local/redis/bin/redis-server /etc/redis/6379.conf
关闭redis的语法就是:
/usr/local/redis/bin/redis-server -p 6379 shutdown
检查redis是否运行,就是检查redis的pid文件下的进程是否存在.
查看redis的配置文件/etc/redis/6379.conf,里面有很多注释,去除注释:
[root@mongodb1 utils]# grep -E -v "^#" /etc/redis/6379.conf |sed '/^$/d'
bind 127.0.0.1
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /data/redis/log/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 /data/redis/6379
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
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
其中主要的参数:
bind:绑定的ip地址
port:监听端口号
pidfile:pid文件名
dir:数据文件目录
logfile:日志文件地址
 
 最后我分享一下我遇到的坑:
第一:我发现别的服务器不可以访问redis  
开始以为是iptables  然后各种设置不中 
 
程序连接 connection timetout 本地telnet也不通  原因是 etc/redis/6379.conf  里面bind 127.0.0.1  把所有的bind去掉 这样就可以任意访问了 不用设置具体的ip。
 
第二:第一步设置完之后 用程序连接发现报如下错误:
redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only
 
 accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
at redis.clients.jedis.Protoc
大致意思是开启了保护模式  访问只能通过backloop地址访问
 解决办法依旧是修改7379_conf  把protected-mode 修改为no          然后              daemonize no设置为yes 注册为服务在后台跑  
 
重新启动redis就ok

linux下安装redis3.2的更多相关文章

  1. Linux下安装Redis3.2.4

    安装: 通过wget方式直接在linux上下载Redis $ wget http://download.redis.io/releases/redis-3.2.4.tar.gz , 默认下载到路径是r ...

  2. 通过xshell在linux上安装redis3.0.0

    通过xshell在linux上安装redis3.0.0 0)首先要安装环境:yum install gcc-c++ 1)通过xftp6将redis安装包上传到linux:解压缩:tar -xvfz r ...

  3. redis-windows和linux下安装

    Window 下安装 下载地址:https://github.com/dmajkic/redis/downloads. 下载到的Redis支持32bit和64bit.根据自己实际情况选择,将64bit ...

  4. python 基础1.1--windows/linux 下安装python

    一.windows下安装python 1>windows上python后缀是.msi的,下载下来后,直接双击运行.会在c盘生成python.exe的文件,把python.exe的文件加入到win ...

  5. Linux下安装python,mysql,redis

    linux 安装Python3 1.python下载 请在终端输入如下命令: cd /home wget http://cdn.npm.taobao.org/dist/python/3.6.5/Pyt ...

  6. Linux下安装 Posgresql 并设置基本参数

    在Linux下安装Postgresql有二进制格式安装和源码安装两种安装方式,这里用的是二进制格式安装.各个版本的Linux都内置了Postgresql,所以可直接通过命令行安装便可.本文用的是Cen ...

  7. Linux下安装Tomcat服务器和部署Web应用

    一.上传Tomcat服务器

  8. Linux下安装使用Solr

    Linux下安装使用Solr 1.首先下载Solr.mmseg4j分词包.tomcat并解压,这用google.百度都可以搜索得到下载地址. 2.因为要使用到中文分词,所以要设置编码,进入tomcat ...

  9. Linux下安装tar.gz类型的jdk,并配置环境变量

    近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...

随机推荐

  1. 大数据查询——HBase读写设计与实践--转

    背景介绍 本项目主要解决 check 和 opinion2 张历史数据表(历史数据是指当业务发生过程中的完整中间流程和结果数据)的在线查询.原实现基于 Oracle 提供存储查询服务,随着数据量的不断 ...

  2. os.clock()导致的bug

    os.clock () 功能:返回一个程序使用CPU时间的一个近似值 最近做了一个功能,这个功能需要统计时间间隔,例如每隔0.5秒做一次调用. 我用了os.clock()去统计时间,结果在pc机上都没 ...

  3. python的小数据池和深浅拷贝

    小数据池 一种数据缓存机制,也称驻留机制 在同一代码块,相同的值不会开辟新的内存 特殊字符除外 小数据池只针对:在控制台时! 数字 :-5到256间的整数会被缓存 布尔值:都会缓存8 字符串 小于等于 ...

  4. vc++如何创建程序-函数的重载

    重载构成的条件:函数的参数类型,参数个数不同,才能构成函数的重载 函数重载分为两种情况: 1 .(1)void output(); (2)int output(); 2 .(1)void output ...

  5. hive优化分享

    粘贴一下我在部门中的一次hive优化的分享. 简述 hive构建在hadoop基础上,利用分布式存储,通过mr引擎实现对大数据的计算.MR会频繁地读写磁盘而且MR任务的启动成本很高.对于hive优化显 ...

  6. Jenkins 部署 PHP 应用

    安装 Jenkins 方式一:docker方式安装 拉取jenkins官方镜像,按照镜像文档启动镜像就可以了 方式二:手动安装 以下所有操作都使用 root 用户进行操作. 在各项目官网,下载 Jav ...

  7. 洛谷P1540 机器翻译 水题 模拟

    注意一下细节,尤其是更新minv时不要更新错. Code: #include<vector> #include<iostream> #include<cstdio> ...

  8. bootstrapvalidator使用,重置校验

    1.html页面需要注意的是验证字段需要用form-group包裹.需要引用相应的css和js. <form id="jobForm" role="form&quo ...

  9. Linux crontab 在每月最后一天执行

    59  23 * * * if [ `date +%d -d tomorrow` = 01 ]; then; command(/usr/bin/curl -s -o temp.txt  http:// ...

  10. Redis 报错:MISCONF Redis is configured to save RDB snapshots

    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Com ...