今天为了面试坐了60站地铁,结果被HR拦住了,连技术总监都没有见到
Redis安装
从github上下载redis
解压缩 新建startup.cmd文件 用文本编辑器写入 redis-server redis.windows.conf
然后双击运行 看到redis图标表示安装完成
可以使用redis自带的客户端工具了。 redis-cli.exe打开即可
Redis的JavaAPI
spring的RedisTemplate类可以在java中方便的使用Redis
使用Redis要先下载jedis的jar包 导入工程即可
搞一个helloWorld体验一下
package cn.tmhkc.redis;
import redis.clients.jedis.Jedis;
/**
*
* @author tmhkc
*Redis的helloWorld
*/
public class Redis {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost",6379);
int i = 0;
try {
long start = System.currentTimeMillis();
while (true) {
long end = System.currentTimeMillis();
if (end - start >= 1000)
break;
i++;
jedis.set("test"+i,i+"");
}
} catch (Exception e) {
e.printStackTrace();
}finally {
jedis.close();
}
System.out.println("redis每秒操作:"+i+"次");
}
}
在上连接池的时候发现JedisPoolConfig怎么也点不出方法
点击查看源码的时候才发现是继承GenericObjectPoolConfig这个类
导入commons-pool2包后即可配置连接池设置
package cn.tmhkc.redis;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
*
* @author tmhkc
*上连接池!
*
*/
public class RedisPool {
public static void main(String[] args) {
//这个类是GenericObjectPoolConfig的子类 一定要引入commons-pool2包!
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//设置最大空闲数
jedisPoolConfig.setMaxIdle(50);
//最大连接数
jedisPoolConfig.setMaxTotal(100);
//最大等待毫秒数
jedisPoolConfig.setMaxWaitMillis(20000);
//使用配置创建连接池
JedisPool jedisPool = new JedisPool(jedisPoolConfig, "localhost");
Jedis jedis = jedisPool.getResource();
}
}
Redis只提供字符串型的操作,无法操作Java对象。
spring已经封装了方法支持已序列化的对象
使用spring的RedisTemplate操作Redis
需要添加支持spring-data-redis.jar
springDataRedis方案中提供了4种工厂模型
JredisConnectionFactory
JedisConnectionFactory
LettuceConnectionFactory
SrpConnectionFactory
他们都是RedisConnectionFactory的实现类
RedisTemplate实现了RedisSerializer接口
488