ジェダイの紹介
Redisはコマンドを使用して操作できるだけでなく、基本的に主流の言語でJava、C#、C ++、PHP、Node.js、GoなどのAPIをサポートしています。Jedis、Redisson、Jredis、JDBC-Redisなど、一部のJavaクライアントが公式Webサイトにリストされています。その中で、JedisとRedissonが公式に推奨されています。
Jedisを使用するには、jarパッケージをインポートする必要があります
リンク:https
://pan.baidu.com/s/1zuVLD-8VO6v08dCMF8TfyA抽出コード:xe81
このコンテンツをコピーした後、Baidu Netdisk携帯電話アプリを開くと、操作がより便利になります
ジェダイクラスの一般的なメソッド
注:各メソッドはredisのコマンド名であり、メソッドのパラメーターはコマンドのパラメーターです。各Jedisオブジェクトは、JDBCのConnectionオブジェクトに似ています。
特定のコマンドについては、私の別の記事を参照してください:Redisの概要と一般的なコマンド
https://blog.csdn.net/RookiexiaoMu_a/article/details/89609874
ケース:上記のJedisの方法を使用してRedisにアクセスし、文字列とリストタイプをサーバーに書き込んで、プリントコンソールに取り出します。
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接続リソースを使用する場合は、自分で作成する必要があります。代わりに、jedisオブジェクトは接続プールからリソースを取得してredis操作を実行します。使用後、jedis接続リソースを破棄する必要はありませんが、他の要求のためにリソースを接続プールに戻します。
Jedis接続プールAPI
ケース:接続プールを使用してjedis操作を最適化し、接続プールから作成されたJeidsオブジェクトを取得し、このJedisオブジェクトを使用します。セットコレクションをRedisデータベースに書き込み、コレクションを削除します。コンソールに印刷して、データベース内の情報を表示します。
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();
}
}
ResourceBundleクラス
ResourceBundleを使用して構成ファイルを読み取る
//1. 得到ResourceBundle类
ResourceBundle bundle = ResourceBundle.getBundle("jedis");
//2. 调用getString("键")得到值
String host = bundle.getString("host");
ケース:jedis接続プールツールクラスの記述
書き方:
- ResourceBundleを使用して構成ファイルを読み取る
- Jedis接続プール構成オブジェクトを作成し、パラメーターを指定します
- 接続プールオブジェクトを作成する
- Jedisオブジェクトを取得するメソッドを記述します
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();
}
}