安装篇
下载
去官网查看你要的版本下载(本文使用3.2.3)1
wget http://download.redis.io/releases/redis-3.2.3.tar.gz
解压安装
| 1 | tar xvzf redis-3.2.3.tar.gz | 
make执行完后会出现src目录,进入src可以看见有redis-server、redis-cli等命令。
启动与测试
执行redis-server即可看到redis启动页面。
另开一个命令行界面执行redis-cli即可进去测试。-h 参数指定IP -p 参数可指定端口。
设置服务
如果想以服务的方式去启动redis,可以按照以下步骤来。
- 首先复制redis子目录utils中的redis_init_script到/etc/init.d下,同时易名为redis。 - 1 - cp redis-3.2.3/utils/redis_init_script /etc/rc.d/init.d/redis 
- 修改脚本 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43- #!/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/bin/redis-server
 CLIEXEC=/usr/local/bin/redis-cli
 PIDFILE=/var/run/redis_${REDISPORT}.pid
 CONF="/etc/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
 ;;
 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
 ;;
 *)
 echo "Please use start or stop as first argument"
 ;;
 esac
修改有两处:1、第三行为新增;2、第21行结尾处添加&,后台启动。
- 将redis子目录src下的redis-server和redis-cli复制到/usr/local/bin/文件(脚本中第8/9行指示) - 1 
 2- cp redis-3.2.3/src/redis-server /usr/local/bin/ 
 cp redis-3.2.3/src/redis-cli /usr/local/bin/
- /etc目录下创建redis目录并复制配置到此目录(脚本文中第12行) - 1 
 2- mkdir /etc/redis 
 cp redis-3.2.3/redis.conf /etc/redis/6379.conf
- 注册服务 - 1 - chkconfig --add redis 
- 启动服务 - 1 - service redis start 
以服务的方式启动已成功,即可使用,若需要停止,请看下一个步骤。
- 停止服务1 service redis stop 
如需对外开放服务,请修改配置文件中的bind,配置对外服务机器的IP。
集成篇
当前只介绍Spark写数据到redis
导入jar1
2
3
4
5<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>
代码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14import org.apache.spark.{SparkContext, SparkConf}
import redis.clients.jedis.Jedis
val conf = new SparkConf().setAppName(this.getClass.getSimpleName)
val sc = new SparkContext(conf)
val rdd = ... //要写入redis的数据,RDD[Map[String,String]]
rdd.foreachPartition{iter =>
  val redis = new Jedis("10.10.40.111",6379,400000)
  val ppl = redis.pipelined()//使用pipeline 更高效的批处理
  iter.foreach{f=>
    ppl.hmset(f("mid"),f)//当前采用的是Map类型,以mid为Key
  }
  ppl.sync()
}