jedis

redis

喜夏-厌秋 提交于 2019-12-01 20:44:41
redis主要用于缓存 一、缓存   1.什么样的数据适合存放于缓存     安全系数比较低;查询频率比较高;修改频率比较低   2.常见的缓存技术     ehcache,memorycache,redis等 二、redis缓存 多种数据类型缓存:字符串类型、散列类型、列表类型、集合类型,有序集合类型 redis提供了两种持久化功能:RDB,AOF 可用作缓存、队列、消息订阅、发布 支持设置键的生存时间 (集群:把一个项目部署到多台服务器上) redis服务器返回值的类型   PONG、error、ok、integer、String、多行字符串 redis中基本命令 select 数字 选择数据库 flushall 清空所有数据库中的数据 flushdb 清空当前数据库中数据 keys 键名(* ?用法与sql数据库相同) 查询满足条件的键 exists 键名 判断某个是否存在 存在返回1 ,不存在返回0 del 键名(space)键名 删除某几个键 ,返回删除了几个键 help 命令名 存储的类型为字符串类型的命令 set key value 往redis中存储数据 get key 根据键获取redis中的数据 incr key 递增(1) incrby key increment 递增指定的数 decr key 递减 append key value 在key后面追加字符串

RedisPool

不想你离开。 提交于 2019-12-01 19:32:25
这里要求Jedis的版本为2.6.0 import com.mmall.utils.YamlUtils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class RedisPool { private static JedisPool jedisPool; /** * 最大连接数 * * @info 2019-10-21 16:45 liuxi * @param null */ private static Integer maxTotal = Integer.valueOf(YamlUtils.getString("redis.max.total")); /** * 在jedisPool中最小的idle状态的jedis市里的个数 * * @info 2019-10-21 16:45 liuxi * @param null */ private static Integer maxIdle = Integer.valueOf(YamlUtils.getString("redis.max.idle")); /** * 在jedisPool中最小的idle状态的jedis市里的个数 *

redis 第二章:redis-desktop-manager的使用和jedis的使用

邮差的信 提交于 2019-12-01 16:05:32
实际工作环境中,Redis会安装在服务器上,我们想使用Redis服务就要使用Redis终端。 redis-desktop-manager便是来连接Redis服务并可供我们学习使用的。 首先,安装 redis-desktop-manager,大家可以到https://redisdesktop.com/download这个地址下载安装包并进行安装。 下载windows版本的。 安装完之后,可以看到如下图所示的界面。我们可以点击下图添加一个Redis连接 前提是redis服务器已经启动了。地址就是ubuntu虚拟机的ip了,端口就默认6379 成功连接后有如下界面: 连接上Redis服务后,如下图所示,可以看到有16个数据库,如果想操作Redis服务,可以在redis-server上右键----->Console,如下图所示。 切换数据库可以看下图添加key,并添加value: 二 jedis的使用: 首先,Jedis是Redis的Java客户端,我们平时在控制台使用 redis-cli 连接某个redis节点,然后对其进行 127.0.0.1:7000 > get key 127.0.0.1:7000 > set key value 等操作。通过Jedis,我们可以直接在Java代码中,使用一下代码方便地操控Redis。 jedis.set(key,value) jedis.get

Java使用Redis实例

浪子不回头ぞ 提交于 2019-12-01 15:28:20
在开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。 1)redis安装步骤参考 2)需要下载jedis.jar驱动包 redis安装包与jedis.jar提取链接:https://pan.baidu.com/s/1Y2jSlGMsuydbTqJZr_RJqg 提取码:k9pj 一:新建一个JAVAWEB项目 点击finish即可,web.xml不重要 再将jedis.jar架包放入WEB-INF下的lib中 二:实践案例 1. 连接本地的 Redis 服务和查看服务是否运行   1)首先打开redis服务    2)创建RedisJava类 public class RedisJava { public static void main(String[] args) { // 连接本地的 Redis 服务 Jedis jedis = new Jedis("localhost"); System.out.println("连接本地的 Redis 服务成功!"); // 查看服务是否运行 System.out.println("服务 正在运行: " + jedis.ping()); } }   运行结果:   需要用到redis时我们需要开启redis服务 2.Redis Java

jedis 用连接池时超时返回值类型错误

纵然是瞬间 提交于 2019-12-01 14:26:37
这个是今天发现一个bug:在测试redis并发读写的时候(jedis作为客户端,并使用了连接池),总是报 java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.Long at redis.clients.jedis.Connection.getIntegerReply(Connection.java:161) at redis.clients.jedis.Jedis.del(Jedis.java:108) 类似的错误,就是返回值类型和文档上的返回值类型不相符,感觉很不应该;开始怀疑是jedis实现的一个bug,后来发现一个现象,当抛一个超时异常的时候,后面就连续的出现一个类似上面的错误,最后终于发现了问题所在。 原先的代码是这样的: public long del(String key) { long rt = 0L; Jedis jedis = null; try { jedis = getJedis(); rt = jedis.del(key); } finally { releaseJedisInstance(jedis); } return rt; } 这样写貌似OK,但实际上有问题,假设jedis在执行这个命令的时候,因为redis超负荷,jedis可能返回超时的异常

Caused by: java.lang.IllegalArgumentException: CONTAINING (1): [IsContaining, Containing, Contains]is not supported for redis query derivation - Redis

南笙酒味 提交于 2019-12-01 14:04:57
I'm developing Spring Boot + Redis example. In this example, I've developed some custom methods which pull details based on RoleName. For the below method userRepository.findByRole_RoleName("ADMIN") or userRepository.findByMiddleNameContaining("Li"); , we're getting the below exception. The reference URL: https://docs.spring.io/spring-data/keyvalue/docs/1.2.15.RELEASE/reference/html/ Could anyone please provider pointers ? All the other methods are working fine. But just this method causing the problems. I will post all the required code below for reference. Error: java.lang

Caused by: java.lang.IllegalArgumentException: CONTAINING (1): [IsContaining, Containing, Contains]is not supported for redis query derivation - Redis

こ雲淡風輕ζ 提交于 2019-12-01 13:10:39
问题 I'm developing Spring Boot + Redis example. In this example, I've developed some custom methods which pull details based on RoleName. For the below method userRepository.findByRole_RoleName("ADMIN") or userRepository.findByMiddleNameContaining("Li"); , we're getting the below exception. The reference URL: https://docs.spring.io/spring-data/keyvalue/docs/1.2.15.RELEASE/reference/html/ Could anyone please provider pointers ? All the other methods are working fine. But just this method causing

你应该知道的那些超时设置或默认参数

一个人想着一个人 提交于 2019-12-01 11:14:27
郑昀 总结 最后 更新于 2013年6月19日 存储介质 Redis Java-Driver Jedis 连接池:Jedis的连接池设计基于 Apache Commons-Pool 原生库: maxActive :可用连接实例的最大数目,默认值为8; maxIdle:空闲连接实例的最大数目,默认值也是8; minIdle:空闲连接实例的最小数目,默认值为0; maxWait :等待可用连接的最大数目,单位毫秒,默认值为-1,表示永不超时。 mongodb Server端的连接数 maxConns :mongodb 实例的最大连接数限制可以通过启动参数中的 maxConns 设置。默认值取决于系统的限制(如 ulimit 和 file descriptor)。如果没设置这个参数, mongodb 自己不会限制连接数。但,你不能设置超过 20,000 。 client端的连接 Java-Driver MongoOptions.maxWaitTime:连接上阻塞线程的最大等待时间,默认值120秒; MongoOptions.connectTimeout:建立新连接超时时间( 郑昀 注: Only used for new connections), 默认无限制; MongoOptions.socketTimeout:socket通讯超时时间,默认无限制; MongoOptions.

redis连接池

风流意气都作罢 提交于 2019-12-01 10:22:34
一、配置文件 1. db.properties配置文件#IP地址 redis.ip = 127.0.0.1 #端口号 redis.port=6379 #最大连接数 redis.max.total=20 #最大空闲数 redis.max.idle=10 #最小空闲数 redis.min.idle=2 #效验使用可用连接 redis.test.borrow=true #效验归还可用连接 redis.test.return=false2. pom.xml文件 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version></dependency> 二、java代码 public class RedisPool { private static JedisPool pool ; //jedis连接池 private static Integer maxTotal = Integer.parseInt(PropertiesUtil.getProperty("redis.max.total","20")); //最大连接数 private static Integer maxIdle = Integer.parseInt(PropertiesUtil

Redis一些基本知识面试问题

好久不见. 提交于 2019-12-01 09:58:14
1、什么是Redis?简述它的优缺点? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能。 比方说用他的List来做FIFO双向链表,实现一个轻量级的高性 能消息队列服务,用他的Set可以做高性能的tag系统等等。 另外Redis也可以对存入的Key-Value设置expire时间,因此也可以被当作一 个功能加强版的memcached来用。 Redis的主要缺点是数据库容量受到物理内存的限制,不能用作海量数据的高性能读写,因此Redis适合的场景主要局限在较小数据量的高性能操作和运算上。 2、Redis相比memcached有哪些优势? (1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 (2) redis的速度比memcached快很多 (3) redis可以持久化其数据 3