Redis是key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务、管道及有jedis自身实现的分布式。
在这里对jedis关于事务、管道和分布式的调用方式做一个简单的介绍和对比:
package com.ws.Redis;
import java.util.Arrays;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.Pipeline;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPipeline;
import redis.clients.jedis.ShardedJedisPool;
import redis.clients.jedis.Transaction;
public class RedisConnection {
public static void main(String[] args) {
normalFunction();
// transactionsFunction();
// pipeline();
// combPipelineTranscationFunction();
// shardNormalFunction();
// shardpipelinedFunction();
// shardPipelinedPoolFunction();
// shardSimplePoolFunction();
}
//简单调用方式,每次set值之后都会返回结果,标记该次set是否成功。
public static void normalFunction() {
Jedis jedis = new Jedis("localhost", 6379);
jedis.auth("123456");
long start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
String result = jedis.set("normal" + i, "normal" + i);
}
long end = System.currentTimeMillis();
System.out.println("Normal SET: " + ((end - start)/1000.0) + " seconds");
jedis.disconnect();
}
//redis事务,一个client发起的事务中的命令可以连续执行,中间不会插入其他指令。
//可以调用jedis.watch()方法来监控key,如果调用后的key值发生变化,则事务执行失败。使用tx.discard()方法取消事务。
//注:事务中某个操作执行失败,并不会回滚其他操作。
public static void