jedis的使用
- 前言
- 一、简单使用示例
-
- 二、jedis连接池:jedisPool
-
- 三、创建连接池工具类
- 1.jedis.properties
- 2.JediesPoolUtils工具类
前言
Jedis: 一款java操作redis数据库的工具.
使用时先下载好jar包(也可maven,本文就是)
一、简单使用示例
1.快速入门
在运行时记得打开redis服务器不然会报错,在maven中使用jedis jar包时可能会遇到一些意外情况(如果你用的是idea2020版,是因为idea在maven这个地方有bug),还有jedis关闭资源时可能会有问题,没有close()方法,可评论或私信与我交流,相互学习,相互进步。
package com.huiqing;
import redis.clients.jedis.Jedis;
public class JedisTest1 {
private static Jedis jedis = new Jedis("localhost", 6379);
public static void main(String[] args) {
jedis.set("username", "zhangsan");
String username = jedis.get("username");
System.out.println(username);
jedis.close();
}
}
2.操作五种数据格式
package com.huiqing;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class JedisTest2 {
private static Jedis jedis = new Jedis();
@Test
public void testString() {
jedis.set("username", "lisi");
String username = jedis.get("username");
System.out.println(username);
jedis.close();
}
@Test
public void testHash() {
jedis.hset("user", "name", "zhangsan");
jedis.hset("user","sex","male");
String name = jedis.hget("user", "name");
System.out.println(name);
Map<String, String> user = jedis.hgetAll("user");
for (String key : user.keySet()) {
String value = user.get(key);
System.out.println(key + " :" + value);
}
jedis.del("user");
jedis.close();
}
@Test
public void testList(){
jedis.lpush("myListName","张迪","工头","张迪");
jedis.rpush("myListName","雷总","伟业");
List<String> myListName = jedis.lrange("myListName", 0, -1);
for (String name : myListName) {
System.out.println(name);
}
String myListName1 = jedis.lpop("myListName");
System.out.println(myListName1);
String myListName2 = jedis.rpop("myListName");
System.out.println(myListName2);
jedis.del("myListName");
jedis.close();
}
@Test
public void testSet(){
jedis.sadd("mySet","争争","庆哥");
Set<String> mySet = jedis.smembers("mySet");
for (String element : mySet) {
System.out.println(element);
}
jedis.del("mySet");
jedis.close();
}
@Test
public void testSortedSet(){
jedis.zadd("mySortedSet",1,"张迪");
jedis.zadd("mySortedSet",2,"工头");
jedis.zadd("mySortedSet",3,"争争");
Set<String> mySortedSet = jedis.zrange("mySortedSet", 0, -1);
for (String s : mySortedSet) {
System.out.println(s);
}
jedis.del("mySortedSet");
jedis.close();
}
}
二、jedis连接池:jedisPool
五步走战略
创建配置对象 ——> 创建连接池对象 ——> 获取链接 ——> 使用 ——> 关闭
1.示例
package com.huiqing;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisTest3 {
public static void main(String[] args) {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50);
config.setMaxIdle(10);
JedisPool jedisPool = new JedisPool(config, "localhost", 6379);
Jedis jedis = jedisPool.getResource();
jedis.set("myStringName","庆哥");
String myStringName = jedis.get("myStringName");
System.out.println(myStringName);
jedis.close();
}
}
2.jedies详细配置
#最大活动对象数
redis.pool.maxTotal=1000
#最大能够保持idel状态的对象数
redis.pool.maxIdle=100
#最小能够保持idel状态的对象数
redis.pool.minIdle=50
#当池内没有返回对象时,最大等待时间
redis.pool .maxWaitMillis=10000
#当调用borrow object方法时,是否进行有效性检查
redis.pool.testOnBorrow=true
#当调用return object方法时,是否进行有效性检查
redis.pool.testOnReturn=true
#“空闲链接"检测线程,检测的周期,毫秒数。如果为负值,表示不运行“检测线程”。默认为-1.
redis.pool.timeBetweenEvictionRunsMillis=30000
#向调用者输出“链接”对象时,是否检测它的空闲超时:
redis.pool.testWhileIdle=true
#对于“空闲链接”检测线程而言,每次检测的链接资源的个数。默认为3.
redis.pool.numTestsPerEvictionRun=50
#redis服务器的IP
redis.ip=XXXXXx
#redis服务器的Port
redis.port=6379
三、创建连接池工具类
java的特性之一“封装”,接下我们上面的东西封装成一个工具类,以方便使用。
1.jedis.properties
host=127.0.0.1
port=6379
maxTota1=50
maxIdle=10
2.JediesPoolUtils工具类
一劳永逸啊!!!
package com.huiqing;
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;
public class JedisPoolUnits {
private static JedisPool jedisPool;
static {
InputStream is = JedisPoolUnits.class.getClassLoader().getResourceAsStream("jedis.properties");
Properties properties = new Properties();
try {
properties.load(is);
} catch (IOException e) {
e.printStackTrace();
}
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
config.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdel")));
jedisPool = new JedisPool(config, properties.getProperty("host"), Integer.parseInt(properties.getProperty("port")));
}
public static Jedis getJedis(){
return jedisPool.getResource();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)