redis的使用:
1)redis相比mysql,速度比较快,用户体验好。
2)不经常变化的数据,可以使用redis存储,比如公司介绍等。
3)在mysql中操作后,存储到数据库中;下次在获取数据的时候,先从redis中查询,如果有就直接获取,如果没有在查询数据库。
4)过期时间设置:过期后,就会删除此条数据;然后数据只能从mysql中查询。
redis配置文件:redis.conf dump.rdb
ShardedJedis:Redis集群客户端对象
jedis实战
//redis连接池工具类
public class JedisPoolUtil {
private static JedisPool pool;//jedis连接池
private static void initPool(){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(20);//最大连接数
config.setMaxIdle(10);//最大空闲
config.setMinIdle(2);//最小空闲数
config.setTestOnBorrow(true);//校验并获取可用连接
config.setTestOnReturn(true);//校验并返回可用连接
config.setBlockWhenExhausted(true);//连接耗尽的时候,是否阻塞,false会抛出异常,true阻塞直到超时。默认为true。
pool = new JedisPool(config,127.0.0.1,6379,1000*2);//本地rides
}
static{
initPool();//静态初始化jedispool
}
public static void main(String args[]){
JedisPoolUtil util = new JedisPoolUtil();
}
public static Jedis getJedis(){//获取jedis连接
return pool.getResource();
}
public static void returnBrokenResource(Jedis jedis){//失败的操作
pool.returnBrokenResource(jedis);
}
public static void returnResource(Jedis jedis){//返回连接
pool.returnResource(jedis);
}
}
封装的jedis操作工具类
public class JedisUtil {
public static Long expire(String key,int exTime){//设置key的有效期,
Jedis jedis = null; //exTime为秒
Long result = null;
try {
jedis = JedisPoolUtil.getJedis();
result = jedis.expire(key,exTime);
} catch (Exception e) {
JedisPoolUtil.returnBrokenResource(jedis);//出现异常返回连接
return result;
}
JedisPoolUtil.returnResource(jedis);
return result;
}
//exTime的单位是秒
//同上直接设置key 的有效期
public static String setEx(String key,String value,int exTime){
Jedis jedis = null;
String result = null;
try {
jedis = JedisPoolUtil.getJedis();
result = jedis.setex(key,exTime,value);
} catch (Exception e) {
JedisPoolUtil.returnBrokenResource(jedis);
return result;
}
JedisPoolUtil.returnResource(jedis);
return result;
}
public static String set(String key,String value){//添加key-value
Jedis jedis = null;
String result = null;
try {
jedis = JedisPoolUtil.getJedis();
result = jedis.set(key,value);
} catch (Exception e) {
JedisPoolUtil.returnBrokenResource(jedis);
return result;
}
JedisPoolUtil.returnResource(jedis);
return result;
}
public static String get(String key){//通过key获取value
Jedis jedis = null;
String result = null;
try {
jedis = JedisPoolUtil.getJedis();
result = jedis.get(key);
} catch (Exception e) {
JedisPoolUtil.returnBrokenResource(jedis);
return result;
}
JedisPoolUtil.returnResource(jedis);
return result;
}
public static Long del(String key){//删除key
Jedis jedis = null;
Long result = null;
try {
jedis = JedisPoolUtil.getJedis();
result = jedis.del(key);
} catch (Exception e) {
JedisPoolUtil.returnBrokenResource(jedis);
return result;
}
JedisPoolUtil.returnResource(jedis);
return result;
}
public static void main(String[] args) {//测试
Jedis jedis = JedisPoolUtil.getJedis();
JedisUtil.set("username","hhbGeek");
String value = JedisUtil.get("username")
System.out.println(value);
System.out.println("end");
//结果
//hhbGeek
//hash list等数据结构暂未封装;
}
}