标签:ide 大连 状态 pack 时间 sys 下载 package between
Java客户端 Jedis
Jedis: 一款java操作redis数据库的工具.
使用步骤:
1. 下载jedis的jar包
2. 使用
//1. 获取连接
Jedis jedis = new Jedis("localhost",6379);
//2. 操作
jedis.set("username","zhangsan");
//3. 关闭连接
jedis.close();
Jedis操作各种redis中的数据结构
1) 字符串类型 string
set
get
2) 哈希类型 hash : map格式
hset
hget
hgetAll
3) 列表类型 list : linkedlist格式。支持重复元素
lpush / rpush
lpop / rpop
lrange start end : 范围获取
4) 集合类型 set : 不允许重复元素
sadd
smembers:获取所有元素
5) 有序集合类型 sortedset:不允许重复元素,且元素有顺序
zadd
zrange
package com.fgy.jedis.test; import org.junit.After; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import java.util.List; import java.util.Map; import java.util.Set; public class JedisTest { private Jedis jedis; @Before public void before() { jedis = new Jedis(); // jedis = new Jedis("localhost", 6379); jedis.auth("root"); } @After public void after() { if (jedis != null) { jedis.close(); } } @Test public void testString() { jedis.set("age", "10"); String age = jedis.get("age"); System.out.println(age); // 可以指定过期时间的 key value jedis.setex("activecode", 20, "hehe"); // 20秒过期 } @Test public void testHash() { jedis.hset("myHash", "name", "张三"); String name = jedis.hget("myHash", "name"); System.out.println(name); System.out.println("------------------------------------"); jedis.hset("myHash", "gender", "男"); Map<String, String> map = jedis.hgetAll("myHash"); Set<Map.Entry<String, String>> entrySet = map.entrySet(); for (Map.Entry<String, String> entry : entrySet) { System.out.println(entry.getKey() + "---" + entry.getValue()); } System.out.println("------------------------------------"); Long hdel = jedis.hdel("myHash", "name"); System.out.println(hdel); } @Test public void testList() { jedis.lpush("myList", "a", "b", "c"); jedis.rpush("myList", "a", "b", "c"); List<String> list = jedis.lrange("myList", 0, -1); for (String s : list) { System.out.println(s); } String element1 = jedis.rpop("myList"); String element2 = jedis.lpop("myList"); System.out.println(element1 + "--" + element2); } @Test public void testSet() { jedis.sadd("mySet", "lily", "zhangsan"); Set<String> mySet = jedis.smembers("mySet"); for (String s : mySet) { System.out.println(s); } System.out.println("------------------------"); Long srem = jedis.srem("mySet", "zhangsan"); System.out.println(srem); } @Test public void testSortedset() { jedis.zadd("mySortedset", 3, "c"); jedis.zadd("mySortedset", 2, "b"); jedis.zadd("mySortedset", 1, "a"); Set<String> set = jedis.zrange("mySortedset", 0, -1); for (String s : set) { System.out.println(s); } Long zrem = jedis.zrem("mySortedset", "a"); System.out.println(zrem); } @Test public void testCommon() { Set<String> set = jedis.keys("*"); for (String s : set) { System.out.print(s); String type = jedis.type(s); System.out.println(" " + type); jedis.del(s); } } }
jedis连接池: JedisPool
使用:
1. 创建JedisPool连接池对象
2. 调用方法 getResource()方法获取Jedis连接
//0.创建一个配置对象
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(50);
config.setMaxIdle(10);
//1.创建Jedis连接池对象
JedisPool jedisPool = new JedisPool(config,"localhost",6379);
//2.获取连接
Jedis jedis = jedisPool.getResource();
//3. 使用
jedis.set("hehe","heihei");
//4. 关闭 归还到连接池中
jedis.close();
package com.fgy.jedis.test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * jedis连接池的使用 */ public class JedisPoolTest { public static void main(String[] args) { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(50); // 设置最大连接数 config.setMaxIdle(10); // 设置最大空闲连接 JedisPool jedisPool = new JedisPool(config, "localhost", 6379, 2000, "root"); Jedis jedis = jedisPool.getResource(); jedis.set("name", "lily"); jedis.close(); } }
jedis详细配置
#最大活动对象数
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
标签:ide 大连 状态 pack 时间 sys 下载 package between
原文地址:https://www.cnblogs.com/roadlandscape/p/12244393.html