Redis——java代码读写redis
来源:互联网 发布:知画生孩子摔倒的视频 编辑:程序博客网 时间:2024/06/09 17:42
一,简单Jedis读写
Jedis jedis=new Jedis("127.0.0.1",6379);//连接的是我本地的服务System.out.println("成功连接到服务器==");/*存取string类型*/jedis.set("name", "lhc");model.addAttribute("name",jedis.get("name"));/*存取hash类型*/jedis.hset("hash", "k1", "v1");jedis.hset("hash", "k2", "v2");jedis.hset("hash", "k3", "v3");model.addAttribute("hash",jedis.hvals("hash")); /*存取list*/jedis.lpush("student", "lhc");jedis.lpush("student", "水田如雅");jedis.lpush("student", "杰伦哥哥");List<String> stuList=jedis.lrange("student", 0, 2);model.addAttribute("stuList",stuList.toString());/*存取set*/jedis.sadd("person","lhc");jedis.sadd("person","水田");jedis.sadd("person","小白");model.addAttribute("people",jedis.smembers("person"));/*存取zset*/jedis.zadd("animal", 0, "cat");jedis.zadd("animal", 0, "dog");jedis.zadd("animal", 0, "sheep");model.addAttribute("animal",jedis.zrange("animal", 0, 2));//查看服务是否允许System.out.println("服务器正在连通中。。。状态:"+jedis.ping());
二,使用连接池读写
JedisPool与ShardedJedisPool:
JedisPool连一台Redis,ShardedJedisPool连Redis集群,通过一致性哈希算法决定把数据存到哪台上,算是一种客户端负载均衡,所以添加是用这个(Redis 3.0之后支持服务端负载均衡) 。
使用SharedJedisPool操作Redis集群工具类:
public class RedisDao {private static final Logger logger = Logger.getLogger(RedisDao.class);@Autowiredprivate ShardedJedisPool shardedJedisPool;public void set(String key, String value) {ShardedJedis jedis = shardedJedisPool.getResource();try {jedis.set(key, value); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return;}public String get(String key) {ShardedJedis jedis = shardedJedisPool.getResource();String result = "";try {result = jedis.get(key); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result;}public Long hset(String key, String field, String value) {ShardedJedis jedis = shardedJedisPool.getResource();Long result = null;try {result = jedis.hset(key, field, value); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result;}public String hget(String key, String field) {ShardedJedis jedis = shardedJedisPool.getResource();String result = null;try {result = jedis.hget(key, field); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result;}public List<String> lrange(String key,long start,long end) {ShardedJedis jedis = shardedJedisPool.getResource();List<String> result = null;try {result = jedis.lrange(key, start, end);; } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result;}public Long del(String key) {ShardedJedis jedis = shardedJedisPool.getResource();Long result = null;try {result = jedis.del(key); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result;}public void rpush(String key, String... value) {ShardedJedis jedis = shardedJedisPool.getResource();try {jedis.rpush(key,value); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return;}public void lpush(String key, String... value) {ShardedJedis jedis = shardedJedisPool.getResource();try {jedis.lpush(key,value); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return;}public void lpop(String key) {ShardedJedis jedis = shardedJedisPool.getResource();try {jedis.lpop(key); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return;}public void rpop(String key) {ShardedJedis jedis = shardedJedisPool.getResource();try {jedis.rpop(key); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return;}public void lrem(String key,int count,String value) {ShardedJedis jedis = shardedJedisPool.getResource();try {jedis.lrem(key,count,value); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return;}/** * 添加key value 并且设置存活时间 * @param key * @param value * @param liveTime */ public void set(String key,String value,int liveTime){ ShardedJedis jedis = shardedJedisPool.getResource(); try { this.set(key, value); jedis.expire(key, liveTime); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } } /** * 检查key是否已经存在 * @param key * @return */ public boolean exists(String key){ ShardedJedis jedis = shardedJedisPool.getResource();boolean result =false;try {result=jedis.exists(key); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result; } /** * 获取一个key的模糊匹配总数 * @param key * @return */ public int getKeyCount(String key) {ShardedJedis jedis = shardedJedisPool.getResource();Set<String> result = null;try {result = jedis.getShard(key).keys(key + "*"); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result.size();} /** * 查看redis里有多少数据 */ @SuppressWarnings("deprecation")public long dbSize(){ ShardedJedis jedis = shardedJedisPool.getResource();Set<String> result = null;try { result=jedis.getShard("").keys("*"); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result.size(); }public long sadd(String key,String... value){ ShardedJedis jedis = shardedJedisPool.getResource();long result = 0l;try {result= jedis.sadd(key,value); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result; }public Boolean sismember(String key,String value){ ShardedJedis jedis = shardedJedisPool.getResource(); Boolean result = false;try {result= jedis.sismember(key,value); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result; }public Set smembers(String key){ ShardedJedis jedis = shardedJedisPool.getResource(); Set result = null;try {result= jedis.smembers(key); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result; }public long zadd(String key,int sequence,String value){ ShardedJedis jedis = shardedJedisPool.getResource(); long result = 0l;try {result= jedis.zadd(key,sequence,value); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result; }public Set<String> zrange(String key,long start,long end){ ShardedJedis jedis = shardedJedisPool.getResource(); Set<String> result = null;try {result= jedis.zrange(key,start,end); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result; }public String hmset(String key,Map map){ ShardedJedis jedis = shardedJedisPool.getResource(); String result = null;try {result= jedis.hmset(key,map); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result; }public Map<String,String> hgetAll(String key){ ShardedJedis jedis = shardedJedisPool.getResource(); Map<String,String> result = null;try {result= jedis.hgetAll(key); } catch (Exception e) { logger.error(e.getMessage(), e); shardedJedisPool.returnBrokenResource(jedis); } finally { shardedJedisPool.returnResource(jedis); } return result; } public ShardedJedisPool getShardedJedisPool() {return shardedJedisPool;}public void setShardedJedisPool(ShardedJedisPool shardedJedisPool) {this.shardedJedisPool = shardedJedisPool;}}
项目中还需加入redis的property文件和bean配置:
<!-- 读入属性文件 --><bean id="propretyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:conf/redis.properties</value></list></property></bean> <!-- redis 配置 --> <bean id="redisDao" class="com.upcloud.demo.redis.dao.RedisDao" scope="prototype"> <property name="shardedJedisPool"><ref bean="shardedJedisPool"/></property> </bean> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="${redis.maxActive}" /> <!--最大连接数--> <property name="maxIdle" value="${redis.maxIdle}" /> <!--最大空闲数--> <property name="maxWaitMillis" value="${redis.maxWait}" /> <!--最大等待时间ms--> <property name="testOnBorrow" value="false" /> </bean> <bean id="jedis.shardInfo" class="redis.clients.jedis.JedisShardInfo"> <constructor-arg index="0" value="${redis.host}" /> <constructor-arg index="1" value="${redis.port}" /> </bean> <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool"> <constructor-arg index="0" ref="jedisPoolConfig" /> <constructor-arg index="1"> <list> <ref bean="jedis.shardInfo" /> </list> </constructor-arg> </bean>
1 0
- Redis——java代码读写redis
- java redis代码配置
- java代码操作redis:
- Java代码操作Redis
- Java代码模拟Redis
- [Java代码] Java操作Redis
- Java之——redis并发读写锁,使用Redisson实现分布式锁
- Java之——redis并发读写锁,使用Redisson实现分布式锁
- Java WebService 实现读写Redis数据库
- Redis简单操作Java代码
- Java使用Redis代码示例
- java代码操作Redis数据库
- Redis——Java操作
- java项目——Redis
- Redis——Java操作
- 分布式缓存技术redis学习系列(九)——Redis主从实现读写分离
- Redis入门—安装Redis
- Redis学习总结(2)——Java使用Redis
- C++多态性
- 读取一个字符c++
- leetcode 345:Reverse Vowels of a String
- LeetCode|Ugly Number
- 四旋翼动力学和仿真翻译(Quadcopter Dynamics and Simulation)
- Redis——java代码读写redis
- Ionic使用ngCordova插件,以Geolocation地理定位为例
- scala学习第四弹:基本语法
- 订单捕获-销售订单自定义
- 线性表的顺序存储结构(一)
- vtk实战(三十三)——写入vts数据
- HDOJ(HDU) 2083 简易版之最短距离(中位数)
- POJ 3087 Shuffle'm Up
- 【LeetCode】Reverse String 解题报告