ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:20.43KB ,
资源ID:6969898      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6969898.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

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

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