【Jedis】如何用Java操作Redis

您所在的位置:网站首页 Redis连接池java 【Jedis】如何用Java操作Redis

【Jedis】如何用Java操作Redis

2024-07-16 12:38| 来源: 网络整理| 查看: 265

Jedis

Jedis是一款java操作redis数据库的工具(类似于JDBC操作MySql数据库,但更加简单)   下面,将演示Jedis的快速入门,以及操作string、hash、list、set、zset等value数据结构的键值对

------------------------------------------------- 快速入门 ----------------------------------------------------- 1.导入jar包 2.使用: Jedis jedis = new Jedis("localhost", 6379); // 获取连接(可以空参,默认值的主机和端口号就是localhost:6379) jedis.set("name", "Alice"); // 操作Redis jedis.close() // 关闭连接 ☑ 下面仅仅演示"最简单最常用的命令",其他命令的"方法名"都是由"Redis原生命令"转化来的 ------------------------------------------------- string ----------------------------------------------------- jedis.set("username", "Alice"); // value不能写成数字整形,没有这种重载(233 写成 "233") jedis.get("username"); jedis.setex("username", 10, "Alice"); // 指定过期时间为10s ------------------------------------------------- hash ----------------------------------------------------- jedis.hset("myhash", "name", "Alice"); jedis.hset("myhash", "age", "12"); jedis.hget("myhash", "name"); jedis.hgetAll("myhash"); // 返回Map ------------------------------------------------- list ----------------------------------------------------- jedis.lpush("mylist", "a", "b", "c"); jedis.rpush("mylist", "a", "b", "c"); jedis.lpop("mylist"); jedis.rpop("mylist"); jedis.lrange("mylist", 0, -1); // 返回List ------------------------------------------------- set ----------------------------------------------------- jedis.sadd("myset", "Alice", "Cocoa","Hana"); jedis.smembers("myset"); // 返回Set ------------------------------------------------- zset ----------------------------------------------------- jedis.zadd("myzset", 100, "Alice"); jedis.zadd("myzset", 300, "Cocoa"); jedis.zadd("myzset", 900, "Hana"); jedis.zrange("myzset", 0, -1); // 返回Set

   

JedisPool——Jedis连接池

使用JedisPool连接池无需额外导入jar包(Jedis的jar包就够) ! ! !

// 1.创建连接池对象(空参) JedisPool jedisPool = new JedisPool(); // 2.获取连接 Jedis jedis = jedisPool.getResource(); // 3.使用 jedis.set("loli", "Alice"); // 4.释放连接 jedis.close(); // 0.创建一个配置对象 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(50); config.setMaxIdle(10); // 1.创建连接池对象(带参) JedisPool jedisPool = new JedisPool(config, "localhost", 6379); // 2.获取连接 Jedis jedis = jedisPool.getResource(); // 3.使用 jedis.set("loli", "Alice"); // 4.归还连接 jedis.close();

   

JedisPoolUtils工具类

上面我们通过JedisPoolConfig配置对象直接赋值来进行连接池的配置,这显然不是最佳的选择   最好将配置信息写在配置文件中,在生成连接池时加载配置文件——这些行为,写在一个工具类的静态代码块中是一个不错的选择

--------------------------------------------- jedis.properties ------------------------------------------------ ip=xxxxxx # redis服务器的IP port=6379 # redis服务器的Port maxTotal=1000 # 最大活动对象数 maxIdle=100 # 最大能够保持idle状态的对象数 minIdle=50 # 最小能够保持idle状态的对象数 maxWaitMillis=10000 # 当池内没有返回对象时,最大等待时间 --------------------------------------------- jedisUtils.java ------------------------------------------------ import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.io.*; import java.util.Properties; /** * JedisPool工具类 * 1.加载配置文件,配置连接池的参数 * 2.提供获取连接的方法 */ public class JedisPoolUtils { private static JedisPool jedisPool; /** * 静态代码块————加载配置文件,new出连接池 */ static { // 1.读取配置文件字节流 → 创建Properties对象 → 关联(load)文件 //InputStream stream = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties"); InputStream stream = null; try { stream = new FileInputStream(new File("src/jedis.properties")); } catch (FileNotFoundException e) { e.printStackTrace(); } Properties pro = new Properties(); try { pro.load(stream); } catch (IOException e) { e.printStackTrace(); } // 2.获取配置,设置到JedisPoolConfig中 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(Integer.parseInt(pro.getProperty("maxTotal"))); config.setMaxIdle(Integer.parseInt(pro.getProperty("maxIdle"))); // 3.初始化jedisPool jedisPool = new JedisPool(config, pro.getProperty("host"), Integer.parseInt(pro.getProperty("port"))); } /** * 静态方法————获取连接 * @return */ public static Jedis getJedis(){ return jedisPool.getResource(); } }

   

追加:JedisPoolUtils工具类引用properties的路径问题 /** * 静态代码块————加载配置文件,new出连接池 */ static { // step1————读取配置文件字节流--创建properties对象--关联(load) InputStream stream = null; Properties properties = new Properties(); try { URL url = Class.forName(JedisUtils.class.getName()).getClassLoader().getResource("jedis.properties"); stream = new FileInputStream(url.getFile()); properties.load(stream); } catch (ClassNotFoundException | IOException e) { e.printStackTrace(); } // step2————获取配置,设置到JedisPoolConfig中 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal"))); config.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle"))); // step3————初始化pool连接池 jedisPool = new JedisPool(config, properties.getProperty("ip"), Integer.parseInt(properties.getProperty("port"))); }

 

 

 

 

 

 

   

   

   

 

End ♬

by a Lolicon ✪



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3