5.Java客户端Jedis
- Jedis:一款Java操作redis数据库的工具。
- 使用步骤:
- 下载jedis的jar包
- 使用:
//1.获取连接 Jedis jedis = new Jedis("localhost",6379); //2.操作 jedis.set("username","rongshen"); //3.关闭连接 jedis.close();
- Jedis操作各种redis中的数据结构
- string(字符串)
- set
- get
- 测试代码:
//1.获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379 //2.操作 //存储 jedis.set("username","rongshen"); //获取 String username = jedis.get("username"); System.out.println(username); //可以使用setex()方法存储可以指定过期时间的key和value jedis.setex("activecode",20,"hehe");//将activecode:hehe键值对存入redis,并且20秒后自动删除该键值对。很像邮件验证。 //3.关闭连接 jedis.close();
- hash(哈希)
- hset
- hget
- hgetAll
- 测试代码:
//1.获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379 //2.操作 //存储hash jedis.hset("user","name","rongshen"); jedis.hset("user","age","23"); jedis.hset("user","gender","man"); //获取hash String name = jedis.hget("user","name"); System.out.println(name); //获取hash的所有map中的数据 Map<String, String> user = jedis.hgetAll("user"); //keyset遍历集合 Set<String> keySet = user.keySet(); for (String key : keySet) { String value = user.get(key); System.out.println(key+":"+value); } //3.关闭连接 jedis.close();
- list(列表)
- lpush
- rpush
- lpop
- rpop
- lange start end
- 测试代码:
//1.获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379 //2.操作 //list存储 jedis.lpush("mylist","a","b","c");//从左边存 jedis.rpush("mylist","a","b","c");//从右边存 //list范围获取 List<String> mylist = jedis.lrange("mylist", 0, -1); System.out.println(mylist); //list的弹出 String elemnet = jedis.lpop("mylist"); String element2 = jedis.rpop("mylist"); //3.关闭连接 jedis.close();
- set(集合)
- sadd
- 测试代码:
//1.获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379 //2.操作 //set 存储 jedis.sadd("myset","luji","jajia","lonzh"); //set 获取 Set<String> myset = jedis.smembers("myset"); System.out.println(myset); //3.关闭连接 jedis.close();
- zset(sorted set有序集合)
- zadd
- 测试代码:
//1.获取连接 Jedis jedis = new Jedis();//如果使用空参构造,默认值是"localhost",6379 //2.操作 //sortedset 存储 jedis.zadd("mysortedset",34,"luji"); jedis.zadd("mysortedset",23,"jiajia"); jedis.zadd("mysortedset",56,"kk"); //sortedset 获取 Set<String> mysortedset = jedis.zrange("mysortedset",0,-1); System.out.println(mysortedset); //3.关闭连接 jedis.close();
- string(字符串)
6.jedis的连接池技术:JedisPool
6.1使用:
- 创建JedisPool连接池对象
- 调用方法getResource()方法获取Jedis连接
//0.创建一个配置对象
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50);//最大的连接数
config.setMinIdle(10);//最大的空闲连接
//1.创建Jedis连接池对象
JedisPool jedisPool = new JedisPool(config,"localhost",6379);
//2.获取连接
Jedis jedis = jedisPool.getResource();
//3.使用
jedis.set("keyhehe","hah");
//4.关闭,归还到连接池中
jedis.close();
- jedis的详细配置:
7.自定义Jedis的连接池工具类
- 配置文件
host=127.0.0.1
port=6379
maxTotal=50
maxIdle=10
- 工具类
package cd.itcast.jedis.util;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* JedisPool工具类
* 1.加载配置文件,配置连接池的参数
* 2.提供获取连接的方法
*/
public class JedisPoolUtil {
private static JedisPool jedisPool;
static {
//读取配置文件
InputStream is = JedisPoolUtil.class.getClassLoader().getResourceAsStream("jedis.properties");
//创建Properties对象
Properties pro = new Properties();
//关联文件
try {
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//获取数据,设置到JedisPoolConfig中
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal")));
config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle")));
//初始化JedisPool
jedisPool = new JedisPool(config, pro.getProperty("host"), Integer.parseInt(pro.getProperty("port")));
}
/**
* 获取连接的范范
*/
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
- 测试代码
public void testUtils(){
//通过连接池工具类获取
Jedis jedis = JedisPoolUtil.getJedis();
//使用
jedis.set("keyhah","zhuaba");
//关闭连接
jedis.close();
}