欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    java redis使用之利用jedis实现redis消息队列.docx

    • 资源ID:6969898       资源大小:20.43KB        全文页数:28页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    java redis使用之利用jedis实现redis消息队列.docx

    1、java redis使用之利用jedis实现redis消息队列应用场景最近在公司做项目,需要对聊天内容进行存储,考虑到数据库查询的IO连接数高、连接频繁的因素,决定利用缓存做。从网上了解到redis可以对所有的内容进行二进制的存储,而java是可以对所有对象进行序列化的,序列化的方法会在下面的代码中提供实现。序列化这里我编写了一个java序列化的工具,主要是对对象转换成byte,和根据byte数组反序列化成java对象;主要是用到了ByteArrayOutputStream和ByteArrayInputStream;需要注意的是每个自定义的需要序列化的对象都要实现Serializable接口;

    2、其代码如下:?123456789101112131415161718192021222324252627282930313233package com.bean.util;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;public class ObjectUtil /*对象转byte* param obj* r

    3、eturn* throws IOException*/public static byte objectToBytes(Object obj) throws ExceptionByteArrayOutputStream bo = new ByteArrayOutputStream();ObjectOutputStream oo = new ObjectOutputStream(bo);oo.writeObject(obj);byte bytes = bo.toByteArray();bo.close();oo.close();return bytes;/*byte转对象* param byte

    4、s* return* throws Exception*/public static Object bytesToObject(byte bytes) throws ExceptionByteArrayInputStream in = new ByteArrayInputStream(bytes);ObjectInputStream sIn = new ObjectInputStream(in);return sIn.readObject();定义一个消息类,主要用于接收消息内容和消息下表的设置。?12345678910111213141516171819202122232425package

    5、 com.bean;import java.io.Serializable;/*定义消息类接收消息内容和设置消息的下标* author lenovo*/public class Message implements Serializableprivate static final long serialVersionUID = 7792729L;private int id;private String content;public int getId() return id;public void setId(int id) this.id = id;public String getCon

    6、tent() return content;public void setContent(String content) this.content = content;利用redis做队列,我们采用的是redis中list的push和pop操作;结合队列的特点:只允许在一端插入新元素只能在队列的尾部FIFO:先进先出原则redis中lpush(rpop)或rpush(lpop)可以满足要求,而redis中list 里要push或pop的对象仅需要转换成byte即可java采用Jedis进行redis的存储和redis的连接池设置?12345678910111213141516171819202

    7、122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614

    8、714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624

    9、724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634

    10、734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644

    11、7448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517package com.redis.util;import java.util.List;import java.util.Map;import java.util.Set;im

    12、port redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class JedisUtil private static String JEDIS_IP;private static int JEDIS_PORT;private static String JEDIS_PASSWORD;/private static String JEDIS_SLAVE;private static JedisPool jedisPoo

    13、l;static Configuration conf = Configuration.getInstance();JEDIS_IP = conf.getString(jedis.ip, 127.0.0.1);JEDIS_PORT = conf.getInt(jedis.port, 6379);JEDIS_PASSWORD = conf.getString(jedis.password, null);JedisPoolConfig config = new JedisPoolConfig();config.setMaxActive(5000);config.setMaxIdle(256);/2

    14、0config.setMaxWait(5000L);config.setTestOnBorrow(true);config.setTestOnReturn(true);config.setTestWhileIdle(true);config.setMinEvictableIdleTimeMillis(60000l);config.setTimeBetweenEvictionRunsMillis(3000l);config.setNumTestsPerEvictionRun(-1);jedisPool = new JedisPool(config, JEDIS_IP, JEDIS_PORT, 6

    15、0000);/* 获取数据* param key* return*/public static String get(String key) String value = null;Jedis jedis = null;try jedis = jedisPool.getResource();value = jedis.get(key); catch (Exception e) /释放redis对象jedisPool.returnBrokenResource(jedis);e.printStackTrace(); finally /返还到连接池close(jedis);return value;

    16、public static void close(Jedis jedis) try jedisPool.returnResource(jedis); catch (Exception e) if (jedis.isConnected() jedis.quit();jedis.disconnect();/* 获取数据* * param key* return*/public static byte get(byte key) byte value = null;Jedis jedis = null;try jedis = jedisPool.getResource();value = jedis

    17、.get(key); catch (Exception e) /释放redis对象jedisPool.returnBrokenResource(jedis);e.printStackTrace(); finally /返还到连接池close(jedis);return value;public static void set(byte key, byte value) Jedis jedis = null;try jedis = jedisPool.getResource();jedis.set(key, value); catch (Exception e) /释放redis对象jedisP

    18、ool.returnBrokenResource(jedis);e.printStackTrace(); finally /返还到连接池close(jedis);public static void set(byte key, byte value, int time) Jedis jedis = null;try jedis = jedisPool.getResource();jedis.set(key, value);jedis.expire(key, time); catch (Exception e) /释放redis对象jedisPool.returnBrokenResource(j

    19、edis);e.printStackTrace(); finally /返还到连接池close(jedis);public static void hset(byte key, byte field, byte value) Jedis jedis = null;try jedis = jedisPool.getResource();jedis.hset(key, field, value); catch (Exception e) /释放redis对象jedisPool.returnBrokenResource(jedis);e.printStackTrace(); finally /返还到

    20、连接池close(jedis);public static void hset(String key, String field, String value) Jedis jedis = null;try jedis = jedisPool.getResource();jedis.hset(key, field, value); catch (Exception e) /释放redis对象jedisPool.returnBrokenResource(jedis);e.printStackTrace(); finally /返还到连接池close(jedis);/* 获取数据* * param

    21、key* return*/public static String hget(String key, String field) String value = null;Jedis jedis = null;try jedis = jedisPool.getResource();value = jedis.hget(key, field); catch (Exception e) /释放redis对象jedisPool.returnBrokenResource(jedis);e.printStackTrace(); finally /返还到连接池close(jedis);return value;/* 获取数据* * param key* return*/public static byte hget(byte key, byte field) byte value = null;Jedis jedis = null;try jedis = jedisPool.getResource();value = jedis.hg


    注意事项

    本文(java redis使用之利用jedis实现redis消息队列.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开