Java中Redis如何使用
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章给大家介绍Java中Redis如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、安装Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,
千家信息网最后更新 2025年02月03日Java中Redis如何使用
这篇文章给大家介绍Java中Redis如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
1、安装
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-3.2.100.zip压缩包,并解压至磁盘指定文件夹
2、启动
打开文件夹,内容如下:
双击redis-server启动redis,这时Redis默认地址是127.0.0.1,端口号是6379
双击,配置解压目录,并进行解压
双击 redisclient-win32.x86.2.0.exe,即可运行,运行如图
3、Java使用Redis
在maven下添加以下内容,引入jedis
redis.clients jedis 2.9.0
编写对象序列化与反序列化工具类
package com.jedis.util;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;public class SerializeUtil { /* * 序列化 * */ public static byte[] serizlize(Object object){ ObjectOutputStream oos = null; ByteArrayOutputStream baos = null; try { baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); oos.writeObject(object); byte[] bytes = baos.toByteArray(); return bytes; } catch (Exception e) { e.printStackTrace(); }finally { try { if(baos != null){ baos.close(); } if (oos != null) { oos.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return null; } /* * 反序列化 * */ public static Object deserialize(byte[] bytes){ ByteArrayInputStream bais = null; ObjectInputStream ois = null; try{ bais = new ByteArrayInputStream(bytes); ois = new ObjectInputStream(bais); return ois.readObject(); }catch(Exception e){ e.printStackTrace(); }finally { try { if (ois != null) { ois.close(); } if(bais != null){ bais.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return null; }}
编写Jedis工具类
package com.jedis.util;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.stereotype.Component;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import java.util.Map;public class JedisComponent { private JedisPool jedisPool; public JedisComponent(JedisPool jedisPool){ this.jedisPool = jedisPool; } public void setObject(String key,Object object){ Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key.getBytes(), SerializeUtil.serizlize(object)); } finally { if (jedis != null) { jedis.close(); } } } public Boolean exists(String key){ Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.exists(key); } finally { if (jedis != null) { jedis.close(); } } } public Object getObject(String key){ Jedis jedis = null; try { jedis = jedisPool.getResource(); byte[] bytes = jedis.get(key.getBytes()); return SerializeUtil.deserialize(bytes); } finally { if (jedis != null) { jedis.close(); } } } public void setMap(String key, Map map) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.hmset(key,map); } finally { if (jedis != null) { jedis.close(); } } } public Map getMap(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.hgetAll(key); } finally { if (jedis != null) { jedis.close(); } } } public void set(String key, String val) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.set(key, val); } finally { if (jedis != null) { jedis.close(); } } } public String get(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.get(key); } finally { if (jedis != null) { jedis.close(); } } } public void setKeyTime(String key,int time) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.expire(key,time); } finally { if (jedis != null) { jedis.close(); } } } public void delKey(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); jedis.del(key); } finally { if (jedis != null) { jedis.close(); } } } public Long getKeyTime(String key) { Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.ttl(key); } finally { if (jedis != null) { jedis.close(); } } } public Long removeKeyTime(String key){ Jedis jedis = null; try { jedis = jedisPool.getResource(); return jedis.persist(key); } finally { if (jedis != null) { jedis.close(); } } }}
编写测试对象Student
package com.jedisTest;import java.io.Serializable;/** * Created by Administrator on 2019/7/16 0016. */public class Student implements Serializable{ private static final long serialVersionUID = 8562001374896568949L; private String fid; private String name; private Integer age; public String getFid() { return fid; } public void setFid(String fid) { this.fid = fid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Student{" + "fid='" + fid + '\'' + ", name='" + name + '\'' + ", age='" + age + '\'' + '}'; }}
最后编写main方法测试
package com.jedisTest;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import java.util.HashMap;import java.util.Map;import java.util.UUID;/** * Created by Administrator on 2019/7/16 0016. */public class JedisTest { //路由 private static String host="127.0.0.1"; //端口号 private static int port=6379; //超时 private static int timeout=10000; // private String password="supermap"; //连接池最大连接数(使用负值表示没有限制) private static int maxActive=1024; //连接池中的最大空闲连接 private static int maxIdle=200; //连接池中最小空闲连接 private static int minIdle=0; //最大等待 private static long maxWaitMillis=10000; public static void main(String[] args){ JedisPool jedisPool = null; try{ JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(maxIdle); jedisPoolConfig.setMaxWaitMillis(maxWaitMillis); jedisPoolConfig.setMaxTotal(maxActive); jedisPoolConfig.setMinIdle(minIdle); jedisPool = new JedisPool(jedisPoolConfig,host,port,timeout,null); System.out.println("JedisPool资源池注入成功!"); System.out.println("redis地址:" + host + ":" + port); JedisComponent jedisComponent = new JedisComponent(jedisPool);//实例化JedisComponent工具类 //字符串的操作 String today = "2019-07-16"; jedisComponent.set("date", today);//将字符串today存入Redis String value = jedisComponent.get("date");//将key为date的value取出 System.out.println("今天的日期是:" + value);//打印value到控制台 jedisComponent.setKeyTime("date",10);//给date设置过期时间,单位是秒 Boolean date = jedisComponent.exists("date");//判断key为date的数据是否存在 jedisComponent.removeKeyTime("date");//删除date的过期时间 jedisComponent.delKey("date");//删除key为date的数据 //对象的操作 Student stuSave1 = new Student(); stuSave1.setFid(UUID.randomUUID().toString()); stuSave1.setName("小明"); stuSave1.setAge(10); jedisComponent.setObject("stu1",stuSave1);//将stu1序列化存入Redis Student stuGet1 = (Student) jedisComponent.getObject("stu1");//将stu1反序列化取出 System.out.println(stuGet1.toString());//打印stuGet1到控制台 jedisComponent.setKeyTime("stu1",10);//给stu1设置过期时间,单位是秒 //Map集合操作 Mapmap = new HashMap<>();//Redis只支持Map集合键值都为String类型的存取 map.put("水果","香蕉"); map.put("家具","沙发"); jedisComponent.setMap("map", map);//将map存入Redis Map map1 = jedisComponent.getMap("map");//将key为map从Redis取出 if(map1 != null){ for (Map.Entry entry : map1.entrySet()) { System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue()); } } jedisComponent.delKey("map");//删除key为map的数据 }catch (Exception e){ e.printStackTrace(); }finally { jedisPool.close();//最后关闭JedisPool资源池 } }}
控制台输出
关于Java中Redis如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
序列
内容
最大
对象
工具
控制台
数据
时间
控制
单位
口号
地址
字符
字符串
文件
文件夹
更多
空闲
资源
帮助
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山东数据库led短屏显示屏
爱聚多网络技术有限公司
华为服务器管理口不亮
王牌战争服务器怎么关
办公软件开发系统
虚拟机怎么删除服务器
计算机网络技术(智能制造方向)
打印机老是重启服务器才行
16949嵌入式软件开发
手机显示服务器异常怎么修复
芜湖有棋牌软件开发公司
小学生网络安全教育知识
刘国钧3 4计算机网络技术
网络安全幼儿儿歌
云服务器端口映射延迟高
软件开发的要求和流程图
网络安全课读后感450字
黑龙江特种网络技术服务代理商
防火墙和网络安全检测装置
河北网络技术服务目的
销售网络服务器机柜公司
网络技术需要数学基础吗
如何清除服务器账号和密码
软件开发落地行业
解雇网络安全局局长
互联网微科技北京有限公司
服务器软件防火墙排名
微软数据库下载
服务器硬盘 转速
服务器禁外网怎么解禁