redis服务搭建及简单使用
获取官网redis安装包,最新版本3.2.8
$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz解压包
$ tar xzf redis-3.2.8.tar.gz
进入目录
$ cd redis-3.2.8
安装
$ make
启动redis服务器
$ src/redis-server
启动redis客户端
$ src/redis-cli
测试
redis> set foo bar
OK
redis> get foo
"bar"
注意:服务器的redis搭建好后,需要开放防火墙端口,并且设置验证密码,java客户端才能连接
开放6379端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
重启防火墙
[root@admin java]# service iptables restart
设置验证密码
cd /usr/local/redis-3.2.8
vim redis.cof
#requirepass foobared去掉注释,foobared改为自己的密码,比如 requirepass 123456
重设密码
config set requirepass yourPassword
java客户端jedis示例代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class RedisTest {
private static JedisPool pool;
/**
* 建立连接池 真实环境,一般把配置参数缺抽取出来。
*
*/
private static void createJedisPool() {
// 建立连接池配置参数
JedisPoolConfig config = new JedisPoolConfig();
// 设置最大连接数
config.setMaxActive(500);
// 设置最大阻塞时间,记住是毫秒数milliseconds
config.setMaxWait(10000);
// 设置空间连接
config.setMaxIdle(10);
//在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的
config.setTestOnBorrow(true);
// 创建连接池
pool = new JedisPool(config, "服务器IP",6379,10000,"密码");
}
/**
* 在多线程环境同步初始化
*/
private static synchronized void poolInit() {
if (pool == null)
createJedisPool();
}
/**
* 获取一个jedis 对象
*
* @return
*/
public static Jedis getJedis() {
if (pool == null)
poolInit();
return pool.getResource();
}
/**
* 归还一个连接
*
* @param jedis
*/
public static void returnRes(Jedis jedis) {
pool.returnResource(jedis);
}
public static void main(String[] args) {
Jedis jedis = getJedis();
//开始前,先移除所有的内容
jedis.del("java framework");
System.out.println(jedis.lrange("java framework",0,-1));
//先向key java framework中存放三条数据
jedis.lpush("java framework","spring");
jedis.lpush("java framework","struts");
jedis.lpush("java framework","hibernate");
//再取出所有数据jedis.lrange是按范围取出,
// 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有
List<String> list = jedis.lrange("java framework",0,-1);
System.out.println(jedis.lrange("java framework",0,-1));
jedis.del("java framework");
jedis.rpush("java framework","spring");
jedis.rpush("java framework","struts");
jedis.rpush("java framework","hibernate");
System.out.println(jedis.lrange("java framework",0,-1));
}
}