Redis不仅可以使用命令来操作,现在基本上主流的语言都有API支持,比如Java、C#、C++、PHP、Node.js、Go等。在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis等其中官方推荐使用Jedis和Redisson。
链接:https://pan.baidu.com/s/1zuVLD-8VO6v08dCMF8TfyA
提取码:xe81
复制这段内容后打开百度网盘手机App,操作更方便哦
注:每个方法就是redis中的命令名,方法的参数就是命令的参数。每个Jedis对象似于JDBC中Connection对象。
具体命令可以去看我的另一篇文章:Redis概述与常用命令
https://blog.csdn.net/RookiexiaoMu_a/article/details/89609874
案例:使用Jedis上面的方法来访问Redis,向服务器中写入字符串和list类型,并且取出打印控制台上。
import redis.clients.jedis.Jedis;
import java.util.List;
/*
使用Jedis的方法来访问Redis,向服务器中写入字符串和list类型,并且取出打印控制台上
*/
public class Demo1 {
public static void main(String[] args) {
//1. 创建连接Jedis
//参数:主机名或IP地址, 端口号
Jedis jedis = new Jedis("localhost", 6379);
//2. 通过jedis对象中方法向服务器写入字符串的类型
jedis.set("person","张三");
//3. 通过jedis对象中方法向服务器写入list的类型
jedis.lpush("cities","广州","上海","东莞");
//4. 通过方法取出字符串和list打印
String person = jedis.get("person");
List<String> cities = jedis.lrange("cities", 0, -1);
System.out.println(person);
System.out.println(cities);
//5. 关闭jedis连接
jedis.close();
}
}
jedis连接资源的创建与销毁是很消耗程序性能,所以jedis为我们提供了jedis的连接池技术,jedis连接池在创建时初始化一些连接对象存储到连接池中,使用jedis连接资源时不需要自己创建jedis对象,而是从连接池中获取一个资源进行redis的操作。使用完毕后,不需要销毁该jedis连接资源,而是将该资源归还给连接池,供其他请求使用。
案例:使用连接池优化jedis操作,从连接池中得到一个创建好的Jeids对象,并且使用这个Jedis对象。向Redis数据库写入一个set集合,并且取出集合。打印到控制台,并且查看数据库中信息。
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.Set;
/*
1. 使用连接池优化jedis操作,从连接池中得到一个创建好的Jeids对象,并且使用这个Jedis对象。
2. 向Redis数据库写入一个set集合,并且取出集合。打印到控制台,并且查看数据库中信息。
*/
public class Demo2 {
public static void main(String[] args) {
//1. 创建配置对象,指定2个参数:最大连接数,最长等待时间
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(10);
config.setMaxWaitMillis(2000); //毫秒
//2. 创建连接池:指定3个参数:上面的配置对象,主机名,端口号
JedisPool pool = new JedisPool(config, "localhost", 6379);
//3. 从连接池中得到连接Jedis对象: getResource()
Jedis jedis = pool.getResource();
//4. 向redis中写入一个set集合: sadd
jedis.sadd("students","白骨精","孙悟空","猪八戒");
//5. 从redis中取出这个set集合打印出来: smembers
Set<String> students = jedis.smembers("students");
System.out.println(students);
//6. 关闭jedis
jedis.close();
}
}
//1. 得到ResourceBundle类
ResourceBundle bundle = ResourceBundle.getBundle("jedis");
//2. 调用getString("键")得到值
String host = bundle.getString("host");
编写步骤:
JedisUtils.java
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.ResourceBundle;
/*
工具类:
1. 简化得到连接代码
2. 修改配置更加方便
*/
public class JedisUtils {
//定义成全局的变量
private static JedisPool pool;
//在类加载的时候就创建连接池
static {
//读取所有的配置参数
ResourceBundle bundle = ResourceBundle.getBundle("jedis");
String host = bundle.getString("host");
int maxTotal = Integer.parseInt(bundle.getString("maxTotal"));
int maxWaitMillis = Integer.parseInt(bundle.getString("maxWaitMillis"));
int port = Integer.parseInt(bundle.getString("port"));
//1. 创建配置对象,指定2个参数:最大连接数,最长等待时间
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(maxTotal);
config.setMaxWaitMillis(maxWaitMillis); //毫秒
//2. 创建连接池:指定3个参数:上面的配置对象,主机名,端口号
pool = new JedisPool(config, host, port);
}
/**
得到连接对象
@return
*/
public static Jedis getJedis() {
//3. 从连接池中得到连接Jedis对象: getResource()
return pool.getResource();
}
}