importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importjava.util.Set;
importredis.clients.jedis.Jedis;
importredis.clients.jedis.JedisPool;
importredis.clients.jedis.JedisPoolConfig;
importredis.clients.jedis.JedisPubSub;
importredis.clients.jedis.ZParams;
/**
* redis常用api
*
* @author Kazz
*
*/
publicclassRedisDemo {
privatestaticJedisPool jedisPool =null;
publicstaticvoidmain(String[] args)throwsException {
// 这个是最简单的redis连接示例,不过不推荐,推荐使用数据库连接池
// Jedis jedis = new Jedis("192.168.8.128", 6379);// 连接 Redis 服务
// jedis.auth("123456"); // 设置密码
// System.out.println("Server is running: " + jedis.ping());//
// 查看服务是否运行
init();
string();
list();
set();
sets();
hash();
zset();
zsets();
publisher();
subscribe();
}
/**
* 初始化redis连接池
*/
privatestaticvoidinit() {
JedisPoolConfig config = newJedisPoolConfig();// Jedis连接池
config.setMaxIdle(8);// 最大空闲连接数
config.setMaxTotal(8);// 最大连接数
config.setMaxWaitMillis(1000);// 获取连接是的最大等待时间,如果超时就抛出异常
config.setTestOnBorrow(false);// 在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
config.setTestOnReturn(true);
jedisPool = newJedisPool(config,"192.168.8.128",6379,5000,"123456",0);// 配置、ip、端口、连接超时时间、密码、数据库编号(0~15)
}
/**
* string类型的基本操作,string是redis的最基本数据类型,很多操作都是其他数据类型能用的,如del、exists、expire
*
* @throws Exception
*
*/
privatestaticvoidstring()throwsException {
Jedis jedis = jedisPool.getResource();
jedis.flushDB(); // 清空数据库
jedis.set("testString","123");// 往redis中放入字符串
System.out.println("从redis中获取刚刚放进去的testString:"+ jedis.get("testString"));
jedis.incr("testString");// 自增,不存在testInt则自增结果是1,如果不是字符串,自增会报JedisDataException
System.out.println("从redis中获取自增后的testString:"+ jedis.get("testString"));
jedis.decr("testString");// 自减,效果同自增
System.out.println("从redis中获取自减后的testString:"+ jedis.get("testString"));
// incrby方法可以自定要增加多少
jedis.append("testString","456abcd");// 在后面追加
System.out.println("从redis中获取追加后的testString:"+ jedis.get("testString"));
String sub = jedis.substr("testString",2,6);// 切割字符串
System.out.println("substr方法的返回值:"+ sub);
System.out.println("从redis中获取切割后的testString:"+ jedis.get("testString"));// 可以看出,substr方法并不会破坏原有值,只是取出来加工而已
jedis.rename("testString","newString");// 字段改名,值不会变
System.out.println("testString改名成newString后,值为:"+ jedis.get("newString"));
String type = jedis.type("newString");// 获取其数据类型
System.out.println("newString的数据类型是:"+ type);
longlength = jedis.strlen("newString");// 获取字符串长度
System.out.println("newString的字符串长度为:"+ length);
jedis.set("testString6","哈哈");
jedis.set("testString7","呵呵");
jedis.set("testString8","helloword");
jedis.set("testString99","SMSP");
<