生产采用direct模式,直接读取kafka分区中的数据,对于数据的累加,要在外部数据库中进行累加,一般采用redis更加高效,因此redis需要集群处理
参考文章:http://blog.csdn.net/myrainblues/article/details/25881535
yum install gcc -y 进入redis目录 进行makemake && make install 如果报错使用 make MALLOC=libc && make install
[root@note01 redis-3.2.11]# cd ../ [root@note01 module]# mkdir redis 安装redis [root@note01 redis-3.2.11]# ls 00-RELEASENOTES deps README.md runtest-sentinel utils BUGS INSTALL redis.conf sentinel.conf CONTRIBUTING Makefile runtest src COPYING MANIFESTO runtest-cluster tests [root@note01 redis-3.2.11]# cp redis.conf ../redis [root@note01 redis]# vim redis.conf
修改信息redis.conf
daemonize yes #redis后台运行 appendonly yes #开启aof日志,它会每次写操作都记录一条日志 bind 192.168.18.100
启动redis,编译的时候已经加入了环境变量之中了
[root@note01 redis]# redis-server ./redis.conf
进入客户端
[root@note01 redis]# redis-cli -h 192.168.18.100 192.168.18.100:6379>
使用命令行客户的连接redis
redis-cli -p 6379
关闭redis
redis-cli shutdown
设置密码,在redis里面设置
192.168.18.100:6379> config set requirepass 123
重新进入
192.168.18.100:6379> keys * (error) NOAUTH Authentication required. //没有权限 192.168.18.100:6379> auth 123 OK
https://blog.csdn.net/xyang81/article/details/51918129
添加redis的java依赖
package cn.edu360.game import redis.clients.jedis.{Jedis, JedisPool, JedisPoolConfig} object JedisConnectionPool{ val config = new JedisPoolConfig() //最大连接数, config.setMaxTotal(20) //最大空闲连接数, config.setMaxIdle(10) //当调用borrow Object方法时,是否进行有效性检查 --> config.setTestOnBorrow(true) //10000代表超时时间(10秒) val pool = new JedisPool(config, "192.168.1.210", 6379, 10000, "123568") def getConnection(): Jedis = { pool.getResource } // def main(args: Array[String]) { // // // val conn = JedisConnectionPool.getConnection() // // val r1 = conn.get("xiaoniu") // // println(r1) // // conn.incrBy("xiaoniu", -50) // // val r2 = conn.get("xiaoniu") // // println(r2) // val r = conn.keys("*") import scala.collection.JavaConversions._ for(p <- r) { println(p + " : " + conn.get(p)) } // } }