使用java代码操作Redis的方式有两种:
- Jedis
- springdataRedis
jedis就是集成了redis的一些命令操作,封装了redis的java客户端。提供了连接池管理。一般不直接使用jedis,而是在其上在封装一层,作为业务的使用。如果用spring的话,可以看看spring 封装的 redis Spring Data Redis
简单使用:
1、新建java工程,导入jar包
2-1、简单编码测试使用
public class Demo {
public static void main(String[] args) {
Jedis jedis = new Jedis();
//默认情况下数据都存入第一个数据库,把数据存入索引为1的数据库
jedis.select(1);
jedis.set("name","laozi");
jedis.close();
//设置有效时间(手机验证码2分钟内有效)
/*Jedis jedis = new Jedis();
jedis.set("time","time");
jedis.expire("time",5);//5秒自动消失
jedis.close();*/
}
private static void executionSortedSet() {
Jedis jedis = new Jedis();
jedis.zadd("desc",100,"zhang");
Set<String> desc = jedis.zrange("desc", 0, -1);
System.out.println(desc);
jedis.close();
}
private static void executionSet() {
Jedis jedis = new Jedis();
jedis.sadd("hobby","篮球","足球","羽毛球");
jedis.srem("hobby","篮球");
jedis.smembers("hobby").forEach(System.out::println);
jedis.close();
}
private static void executionList() {
Jedis jedis = new Jedis();
jedis.lpush("ids","a","b","c","d");
jedis.lpop("ids");
jedis.lrange("ids",0,-1).forEach(System.out::println);
jedis.close();
}
private static void executionHash() {
//不加参数默认是本机和6379端口
Jedis jedis = new Jedis();
jedis.hset("user","name","lisi");
String hget = jedis.hget("user", "name");
System.out.println(hget);
HashMap<String, String> map = new HashMap<>();
map.put("age","20");
map.put("address","北京");
jedis.hmset("user",map);
jedis.hmget("user","age","address").forEach(System.out::println);
jedis.close();
}
/**
* 操作字符串
*/
private static void executionString() {
//1、创建jedis
Jedis jedis = new Jedis("localhost",6379);
//set get
jedis.set("name","zhang");
System.out.println(jedis.get("name"));
jedis.mset("age","10","sex","男");
jedis.mget("age","sex").forEach(System.out::println);
jedis.close();
}
}
2-2、使用连接池获得jedis
public class Demo2 {
//使用连接池获得jedis
public static void main(String[] args) {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(50);
config.setMaxTotal(50);
JedisPool jedisPool = new JedisPool(config, "localhost", 6379);
//从池子中获取jedis
Jedis jedis = jedisPool.getResource();
jedis.set("wahaha","娃哈哈");
System.out.println(jedis.get("wahaha"));
jedis.close();
}
}
2-3、封装JedisUtils工具类使用
1、抽取jedis.properties
host=localhost
port=6379
maxIdle=50
maxTotal=50
2、编写工具类JedisUtils
public class JedisUtils {
private static JedisPool jedisPool;
static {
ResourceBundle bundle = ResourceBundle.getBundle("jedis");
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(Integer.parseInt(bundle.getString("maxIdle")));
config.setMaxTotal(Integer.parseInt(bundle.getString("maxTotal")));
jedisPool = new JedisPool(config, bundle.getString("host"), Integer.parseInt(bundle.getString("port")));
}
/**
* 从池子中获取jedis
* @return
*/
public static Jedis getJedis() {
Jedis jedis = jedisPool.getResource();
return jedis;
}
/**
* 释放资源
* @param jedis
*/
public static void release(Jedis jedis) {
jedis.close();
}
}
3、简单使用
public class Demo3 {
public static void main(String[] args) {
Jedis jedis = JedisUtils.getJedis();
jedis.set("heihei","heiha");
System.out.println(jedis.get("heihei"));
JedisUtils.release(jedis);
}
}