概述
Jedis是Redis官方推荐的Java连接开发工具。
Redis 默认是单机环境使用的。 数据量较大时需要shard(多机环境),这个时候要用ShardedJedis。 ShardedJedis是基于一致性哈希算法实现的分布式Redis集群客户端。
一、Jedis的使用
1、添加maven依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2、Jedis使用方式
方式一:Redis单节点 + Jedis单例 (Redis单节点压力过重, Jedis单例存在并发瓶颈 ,不可用于线上!)
Jedis jedis = new Jedis(host, port);
jedis.auth(password);
方式二:Redis单节点 + JedisPool单节点连接池, (Redis单节点压力过重,负载和容灾比较差)
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(30);// 最大连接数,连接全部用完,进行等待
poolConfig.setMinIdle(5); // 最小空余数
poolConfig.setMaxIdle(20); // 最大空余数
poolConfig.setMaxWaitMillis(10000); // 获取连接时的最大等待毫秒数(如果设置为阻塞时 BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
poolConfig.setTestOnBorrow(true); // 在获取连接的时候检查有效性, 默认false
poolConfig.setTestOnReturn(false); // 调用returnObject方法时,是否进行有效检查
poolConfig.setTestWhileIdle(true); // Idle时进行连接扫描
poolConfig.setTimeBetweenEvictionRunsMillis(30000); // 表示idle object evitor两次扫描之间要sleep的毫秒数
poolConfig.setNumTestsPerEvictionRun(10); // 表示idle object evitor每次扫描的最多的对象数
poolConfig.setMinEvictableIdleTimeMillis(60000); // 表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义
JedisPool pool = new JedisPool(poolConfig, host, port);
Jedis jedis = pool.getResource();
jedis.auth(password);
方式三: Redis分片(通过client端集群,一致性哈希方式实现) + Jedis多节点连接池,(Redis集群,负载和容灾较好, ShardedJedisPool一致性哈希分片,读写均匀,动态扩充)
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(30);// 最大连接数,连接全部用完,进行等待
poolConfig.setMinIdle(5); // 最小空余数
poolConfig.setMaxIdle(20); // 最大空余数
List<JedisShardInfo> jedisShardInfos = new LinkedList<JedisShardInfo>();
JedisShardInfo jedisShardInfo = new JedisShardInfo(host);
jedisShardInfos.add(jedisShardInfo);
ShardedJedisPool shardedJedisPool = new ShardedJedisPool(poolConfig, jedisShardInfos);
ShardedJedis shardedJedis = shardedJedisPool.getResource();
shardedJedis .auth(password);
方式四:Redis集群;new JedisCluster(jedisClusterNodes);
3、jedis常见操作
(1) 对DB的操作
jedis.select(0); //切换到DB0
(2) 对key的操作
jedis.flushDB(); //清除数据
jedis.exists(key); //判断某个键是否存在
jedis.set(key, value); //新增键值对
jedis.keys("*").toString(); //查看系统中所有的键
jedis.del(key); //删除键
jedis.expire(key, 5); //设置键的过期时间(单位:秒)
jedis.ttl(key); //查看键的剩余生存时间
jedis.persist(key); //移除键的生存时间
jedis.type(key); //查看键所存储的值的类型
jedis.get(key); //查看键的值
(3) 对字符串的操作
jedis.del(key); //删除键
jedis.get(key); //获取键
jedis.set(key, newValue)); //修改键的值
jedis.append(key, value)); //在键 c后面加入值
jedis.mset(key1, value1, key2, value2); //增加多个键值对
jedis.del(new String[]{key1, key2}); //删除多个键值对
jedis.mget(key1, key2); //获取多个键值对
jedis.setnx(key, value001); //新增键值对防止覆盖原先值
jedis.setex(key, 2, value); //新增键值对并设置有效时间
jedis.getSet(key, value); //获取原值,更新为新值
jedis.getrange(key, 2, 5)); //截取key的值的字符串
//整型和浮点型以字符串类型存储,但相对于普通的字符串类型数据会多一些特有的操作
jedis.get(key); //获取键的值
jedis.incr(key); //将键的值+1
jedis.decr(key); //将键的值-1
jedis.incrBy(key, 2)); //将键的值加上整数2
jedis.decrBy(key, 2)); //将键的值减去整数2
(4)对Hash的操作
(5)对list列表的操作
(6)对set集合的操作
(7)对zset(sorted set)有序集合的操作
未完待续。。。
最后
以上就是落后荔枝为你收集整理的Redis客户端之Jedis使用介绍的全部内容,希望文章能够帮你解决Redis客户端之Jedis使用介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复