基础操作和了解Redis性能
讨论Java互联网技术为主,因此主要论述如何在java中使用Redis。在java中可以简易的使用Redis,可以让初学者很容易上手操作和基本理解,也可以使用Spring的RedisTemplate使用Redis。为了实际的工作和学习的需要,将从Spring的视角介绍在Java中如何使用Redis,在基础部分使用XML的方式,在实践部分使用注解的方式,这样更容易去理解。
在java程序中使用Redis,在这以maven项目来进行操作,在pom.xml文件中添加(从maven仓库进行搜索可以查到)中添加Jedis的pom文件,下面给段代码可以直接进行演示
Jedis jedis = new Jedis("localhost", 6379);
//TODO redis 设置密码的情况下
//jedis.auth("123456")
int i = 0;
try {
long start = System.currentTimeMillis();//开始毫秒数
while (true) {
long end = System.currentTimeMillis();
if (end - start >= 1000) {
//当大于等于1000毫秒时,结束操作,
break;
}
i++;
jedis.set("test" + i, i + "");
}
} finally {
jedis.close();
}
//TODO 打印一秒内对redis的操作数
System.out.println("redis每秒操作:" + i + "次");
这段代码主要是在于测试Redis的写入性能。
在这里只操作了6908次,事实上Redis的性能要比这个操作速度快得多,这里慢是因为我们只是一条一条地将命令发送给Redis去执行,如果使用流水线技术它会快很多,将可以达到10万次每秒的操作,十分有利于项目开发中系统的性能的提高。注意:这只是一个简单的连接,更多的时候我们会使用Redis的连接池提供了类redis.clients.jedis.JedisPoolConfig对连接池进行配置,如代码所示:
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//最大空闲数
jedisPoolConfig.setMaxIdle(50);
//最大连接数
jedisPoolConfig.setMaxTotal(100);
//最大等待毫秒数
jedisPoolConfig.setMaxWaitMillis(20000);
//使用配置创建连接池
JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost");
//从连接池中获取当个连接
Jedis jedis1 = jedisPool.getResource();
//如果需要密码
//jedis.auth("123456");
可以从上述的代码中可以很容易观察到,Redis连接池可以有效管理连接资源的分配。