Redis - 在项目中使用Redis
2022/7/3 2:19:24
本文主要是介绍Redis - 在项目中使用Redis,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录- 1. 非Spring框架中使用
- 2. 在Spring中的使用
- 3. 场景:在Redis中保存和读取对象
1. 非Spring框架中使用
- 依赖
最常用的Redis在Java上的开发包就是jedis.jar
,同时也需要导入commons-pool2.jar
用作连接池的组件依赖包。注意commons-pool2的版本最好保持最新,过低版本可能导致无法使用。这里做示例的版本是:jedis-2.9.3.jar和commons-pool2-2.8.0.jar。 - 工具类
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class RedisUtil { // Redis所在主机的IP地址 private static String URL = "127.0.0.1"; // Redis所在主机的端口 private static int PORT = 6379; // Redis最大实例数,也就是连接池最大同时活跃的连接数量,默认8 private static int MAX_TOTAL = 64; // Redis连接池控制的空闲连接数量,默认8 private static int MAX_IDLE = 16; // 向连接池获取连接超时报错时长(毫秒) private static int MAX_WAIT = 20000; // 连接Redis服务端超时时长(毫秒) private static int TIMEOUT = 10000; // 获取jedis实例以前进行验证实例有效性 private static boolean TEST_ON_BORROW = true; // jedis连接池 private static JedisPool jedisPool = null; static { try { JedisPoolConfig config = new JedisPoolConfig(); // 老版本中叫MaxActive() config.setMaxTotal(MAX_TOTAL); config.setMaxIdle(MAX_IDLE); // 老版本中叫MaxWait config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); jedisPool = new Jedis(config, URL, PORT, TIMEOUT); } catch (Exception e) { e.printStackTrace(); } } // 获取连接 public synchronized static Jedis getJedis() { Jedis redis; try { if (jedisPool != null) { redis = jedisPool.getResource(); return redis; } else { return null; } } catch (Exception e) { e.printStackTrace(); return null; } } // 释放链接 public static void returnResource(final Jedis jedis) { if (jedis != null) { // 新版本中returnResource()方法已经弃用,官方推荐使用Pool类的close()方法释放连接 jedisPool.close(); } } }
- 使用
// 要连接的Redis库 private static final int redisDB = 0; // 连接对象 private static Jedis redis = null; // 连接 private static boolean connectionRedis() { redis = RedisUtil.getJedis(); if (redis == null || !"PONE".equals(redis.ping())) { return false; } redis.select(redisDB); return true; } // 使用 private static void useRedis() { if (this.connectionRedis()) { redis.set("key", "value"); // 切记释放连接 RedisUtil.returnResource(redis); } }
2. 在Spring中的使用
3. 场景:在Redis中保存和读取对象
- 说明
要将JavaBean对象保存到Redis中,使用Hash数据格式保存和读取都过于繁琐,这里就使用到了JavaBean的序列化和反序列化后将数据以String数据类型保存来实现。 - 序列化和反序列化工具类
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class BeanUtil { // 序列化 public static byte[] serialize(Object object) { ObjectOutputStream oos; ByteArrayOutputStream baos; try { baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); oos.writeObject(object); return baos.toByteArray(); } catch (IOException e) { e.printStackTrace(); } return null; } // 反序列化 public static Object unserizlize(byte[] binaryByte) { ObjectInputStream ois; ByteArrayInputStream bais = new ByteArrayInputStream(binaryByte); try { ois = new ObjectInputStream(bais); return ois.readObject(); } catch (Exception e) { e.printStackTrace(); } return null; } }
- 使用
// 存 redis.set("key".getByte(StandardCharsets.UTF_8), BeanUtil.serialize(entity)); // 取 Entity pe = (Entity) BeanUtil.unserizlize(redis.get("key".getByte(StandardCharsets.UTF_8)));
这篇关于Redis - 在项目中使用Redis的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识