jedis

redis

核能气质少年 提交于 2019-12-02 22:16:16
命令参考: http://redisdoc.com/ 教程: http://redisinaction.com/ 1.准备.下载jar 包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.4.2</version> </dependency> java 客户端还有: Redis4j , jedis , jRedis , 2. 示例 package redisDemo; import redis.clients.jedis.Jedis; public class Test1 { public static void main(String[] args) { //连接 Jedis jedis = new Jedis( "127.0.0.1",6379); //存值 jedis.set( "foo", "bar"); //取值 String foo = jedis.get( "foo"); //删除

redis(二):java使用jedis

匿名 (未验证) 提交于 2019-12-02 21:53:52
1.引入jedis: 1.1 导入jedis包:jedis-2.9.0.jar 1.2 使用maven: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> </dependency> 2.使用本地redis服务: 2.1 启动 redis-server.exe 2.2 创建redis链接:Jedis jedis = new Jedis("localhost"); 3. jedis基本操作: 3.1 String类型: jedis.set(key, value):保存 jedis.get(key):获取 jedis.incr(key):key对应的value可以转为数字,加一 jedis.decr(key):key对应的value可以转为数字,减一 jedis.incrBy(key, number):key对应的value可以转为数字,加number jedis.decrBy(key, number):key对应的value可以转为数字,减number 3.2 list类型: jedis.lpush(key, value):保存 jedis.lrange(key, 0,10):获取,返回List类型 3.3 hash类型: jedis.hset(key, field, value)

spring redis jedis 出现java.lang.ClassNotFoundException: redis.clients.jedis.JedisPoolConfig

匿名 (未验证) 提交于 2019-12-02 21:53:52
这个问题百度了好多 有出现的 但是都没有解决 明明有jedis-2.9.0.jar 偏偏就是提示java.lang.ClassNotFoundException: redis.clients.jedis.JedisPoolConfig 文章来源: spring redis jedis 出现java.lang.ClassNotFoundException: redis.clients.jedis.JedisPoolConfig

Java项目中使用Redis缓存案例

匿名 (未验证) 提交于 2019-12-02 21:53:52
/* service代码略*/ List<PanelDto> panels = panelService.getAllPanels(); //得到接口的名称,接口的url 第二步,根据拿到的信息生成请求参数: getPanelInfo.java WrapResponseModel resonseModel = new WrapResponseModel(); Map<String, String> headers = new HashMap<>(); headers.put("username", username); headers.put("token",token); List<String> content = new ArrayList<String>(); for(PanelDto panelDto:panel){ //发送http请求 content.add(HttpRequestUtils.get(panelDto.getUrl(), headers)); } // 返回格式 responseModel.setCode(SUCCESS_CODE); responseModel.setData(content); 第三步,发送http请求调用接口: HttpRequestUtils.java public static String get(String url,

java.lang.NumberFormatException: For input string: \"7001@17001\"

匿名 (未验证) 提交于 2019-12-02 21:52:03
报错: java.lang.NumberFormatException: For input string: "7001@17001" 解决:由于redis集群的采用的版本是4.1的,在maven的pom.xml中将jedis的版本改成2.9的就可以了, 如果报错依旧,此处有一个大坑。 在buildpath中显示版本jredis2.9,实际上调用仍为旧版本。 具体可通过在cmd pom.xml文件路径下执行 mvn dependency:tree 可以查看包依赖结构。 能够发现实际调用jedis版本仍为旧版本,且此包依赖于commons-pool2包,pool2包版本较低。 在maven调用中,有四个原则: 1.第一声明优先原则:即在配置文件中先写的生效. 2.路径就近原则:即直接依赖优先传递依赖. 3.排除原则:传递依赖出现问题时,可以如下所写,排除依赖 <exclusions> <exclusion> <groupId>xxx</groupId> <artifactId>xxx</artifactId> </exclusion> </exclusions> 4.版本锁定原则:通过dependencyManagement标签 转载于:https://my.oschina.net/u/2462104/blog/1815870

redis(5)-java集成一

匿名 (未验证) 提交于 2019-12-02 21:45:52
Redis官方对Java语言的封装框架推荐有十多种,主要有:Jedis、Lettuce、Redisson。 1几个框架的对比 三个框架都是在Java中对Redis操作的封装。 1.1 Jedis github: https://github.com/xetorthio/jedis Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持。支持基本的数据类型如:String、Hash、List、Set、Sorted Set。 优点 :比较全面的提供了Redis的操作特性,相比于其他Redis 封装框架更加原生。 编程模型 : 使用阻塞的I/O,方法调用同步,程序流需要等到socket处理完I/O才能执行,不支持异步操作。Jedis客户端实例不是线程安全的,所以需要通过连接池来使用Jedis。 1.2 Lettuce 官网: https://lettuce.io/ github: https://github.com/lettuce-io/lettuce-core 高级Redis客户端,用于线程安全同步,异步和响应使用,支持集群,Sentinel,管道和编码器。 优点 :适合分布式缓存框架。 编程模型 :基于Netty框架的事件驱动的通信层,其方法调用是异步的。Lettuce的API是线程安全的,所以可以操作单个Lettuce连接来完成各种操作。 1

redis和jedis常用api

六月ゝ 毕业季﹏ 提交于 2019-12-02 21:42:23
redis: 一、针对key的操作 1.1 del key [key .. ] , 删除指定的一个或者多个key; 1.2 dump key , 序列化给定的key 1.3 restore key ttl serialized-value , 反序列化到key 1.4 exists key , 判断某一key是否存在 1.5 expire key seconds , 设置key的过期时间 ① set命令可以覆盖过期时间;不改变key的操作不会影响key的生存时间 ② rename也不会改变key的过期时间 ③ persist命令可以删除key的过期时间,即永久 ④ ttl可以查看redis中key的过期时间 1.6 expireat key timestamp , 设置key的生存时间 1.7 keys pattern , 查找所有符合给定模式pattern的key ① *, ?, [m,n] 1.8 move key db , 将当前数据库中的key移动数据库 db中。使用select db可以切换数据库 1.9 persist key , 移除给定 key 的生存时间 1.10 pexpire,pexpireat , 设置key的过期、生存时间,单位毫秒 1.11 ttl,pttl , key的剩余过期时间,单位秒,单位是毫秒 1.12 randomkey ,

redis分布式锁java实现

匿名 (未验证) 提交于 2019-12-02 21:35:18
redis与redis分布式锁java实现 @ TOC 分布式锁 什么是分布式锁?在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性 .为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 1.互斥性,在任何时候,只有一个客户端能持有锁 2.不会发生死锁.即使一个客户端在持有锁期间因奔溃没有自动解锁,也能保证后续客户端能加锁 3.具有容错性,只要大部分的redis节点能正常工作,客户端就能加锁和解锁 4.解铃还需系铃人,解锁和加锁必须是同一个客户端,其他客户端不能把别人的锁解了. 分布式锁业界上有三种实现方式:1.基于zookeeper实现的分布式锁;2.基于redis实现的分布式锁;3.基于数据库乐观锁实现.本博客主要讲解是第二种,基于redis实现. redis作为缓存中间件,无论是在电商项目,还是传统的ERP项目,想必大家都有所用到,特别是2016年来,分布式spring cloud,dubbo等分布式框架的使用,redis作为分布式缓存,提高系统的性能,加强系统的健壮性. java代码实现 添加依赖组件 本文是基于maven实现 <!-- Redis客户端 --> <dependency> <groupId>redis.clients<

Java与redis交互、Jedis连接池JedisPool

匿名 (未验证) 提交于 2019-12-02 21:35:04
Java与redis交互比较常用的是Jedis。 先导入jar包: commons-pool2-2.3.jar jedis-2.7.0.jar 基本使用: public class RedisTest1 { public static void main(String[] args) { Jedis jedis = new Jedis("localhost",6379); jedis.set("username","chichung"); jedis.close(); } } JedisPool连接池 基本使用如下: public class RedisTest2 { public static void main(String[] args) { // 比较特殊的是,redis连接池的配置首先要创建一个连接池配置对象 JedisPoolConfig config = new JedisPoolConfig(); // 当然这里还有设置属性的代码 // 创建Jedis连接池对象 JedisPool jedisPool = new JedisPool(config,"localhost",6379); // 获取连接 Jedis jedis = jedisPool.getResource(); // 使用 // 关闭,归还连接到连接池 jedis.close(); } }

如何防止秒杀抢购超卖?

匿名 (未验证) 提交于 2019-12-02 20:56:53
可以利用redis的事务加上watch监听方法,具体代码如下! 1 package com.github.distribute.lock.redis; 2 3 import java.util.List; 4 import java.util.Set; 5 import java.util.concurrent.ExecutorService; 6 import java.util.concurrent.Executors; 7 8 import redis.clients.jedis.Jedis; 9 import redis.clients.jedis.Transaction; 10 11 /** 12 * redis乐观锁实例 13 * @author linbingwen 14 * 15 */ 16 public class OptimisticLockTest { 17 18 public static void main(String[] args) throws InterruptedException { 19 long starTime=System.currentTimeMillis(); 20 21 initPrduct(); 22 initClient(); 23 printResult(); 24 25 long endTime=System