Rumah > Artikel > pangkalan data > Pembelajaran Redis: Penggunaan Asas Jedis
Artikel ini membawakan anda pengetahuan yang berkaitan tentang Redis Ia terutamanya mengatur isu yang berkaitan dengan penggunaan asas Jedis, termasuk operasi asas Jedis, penggunaan kumpulan sambungan Jedis, dsb., seperti berikut. lihat, saya harap ia akan membantu semua orang.
Pembelajaran yang disyorkan: Tutorial video Redis
Jedis = Java Redis
Redis bukan sahaja boleh dikendalikan menggunakan arahan, tetapi kini pada asasnya bahasa arus perdana mempunyai sokongan API, seperti Java, C#, C, PHP, Node.js, Go, dll. Terdapat beberapa pelanggan Java disenaraikan di laman web rasmi, termasuk Jedis, Redisson, Jredis, JDBC-Redis, dll. Antaranya, Jedis dan Redisson disyorkan secara rasmi.
Untuk menggunakan Jedis untuk mengendalikan redis, anda perlu mengimport pakej balang seperti berikut:
Nota: Setiap kaedah ialah nama arahan dalam redis, dan parameter kaedah ialah parameter perintah
方法 |
功能 |
new Jedis(host, port) |
创建Jedis的连接,参数:主机名,端口号6379 |
set(key,value) |
添加一个字符串的键和值 |
get(key) |
得到指定键的值 |
del(key) |
删除指定键和值 |
hset(key,field,value) |
添加一个hash类型的键-字段-值 |
hget(key,field) |
通过hash键-字段得到它的值 |
lpush(key,values) |
从左边添加一个list类型的键和元素 |
lpop(key) |
从左边弹出一个元素 |
rpop(key) |
从右边弹出一个元素 |
close() |
关闭连接 |
Langkah operasi:
Buat objek Jedis, nyatakan alamat pelayan dan nombor port
Tulis
ditetapkan kepada data jenis String pelayan, person=Zhang San
lpush menambah data jenis senarai, bandar=Zhuhai, Shenzhen, Guangzhou
Baca data di atas daripada pelayan dan cetak output
get mendapat nilai rentetan
lrange mendapat semua elemen senarai senarai
Tutup objek Jedis dan lepaskan sumber
Periksa sama ada terdapat data dalam pangkalan data melalui klien
Output konsol:
Pangkalan data
Kod:
package com.itheima.jedis; import redis.clients.jedis.Jedis; import java.util.List; /** * 使用Jedis向redis中添加string和list,读取它们的值 */ public class Demo1 { public static void main(String[] args) { //创建Jedis连接对象 Jedis jedis = new Jedis("localhost", 6379); //添加string类型 jedis.set("person", "张三"); //添加list类型 jedis.lpush("cities", "广州","上海","东莞"); //读取string类型 String person = jedis.get("person"); //读取list类型 List<String> cities = jedis.lrange("cities", 0, -1); //输出到控制器上 System.out.println("person:" + person); System.out.println("cities:" + cities); //关闭连接对象 jedis.close(); } }
Penciptaan dan pemusnahan sumber sambungan Jedis menggunakan banyak daripada prestasi program, jadi jedis memberikan kami teknologi kumpulan sambungan jedis
Kolam sambungan memulakan beberapa objek sambungan dan menyimpannya dalam kumpulan sambungan apabila ia dibuat apabila menggunakan jedis untuk menyambung sumber, anda tidak melakukannya perlu mencipta pasangan jedis sendiri
Sebaliknya, ia memperoleh sumber daripada kumpulan sambungan untuk melaksanakan operasi redis. Selepas digunakan, tidak perlu memusnahkan sumber sambungan jedis
Sebaliknya, kembalikan sumber itu kepada kumpulan sambungan untuk digunakan oleh permintaan lain.
Kelas konfigurasi JedisPoolConfig
|
Penerangan Fungsi
|
||||||||||||||||
JedisPoolConfig() |
Buat objek konfigurasi dan gunakan pembina tanpa parameter | tr>||||||||||||||||
void setMaxTotal() |
Tetapkan Nombor kumpulan sambungan maksimum daripada sambungan |
||||||||||||||||
void setMaxWaitMillis() |
Tetapkan masa menunggu maksimum untuk Jedis mendapatkan objek sambungan |
Kelas kolam sambungan JedisPool span> |
Penerangan |
JedisPool(objek konfigurasi, nama pelayan ,nombor port) |
Buat kolam sambungan Parameter 1: objek konfigurasi di atas, parameter 2 : nama pelayan , Parameter 3: 6379 |
Jedis getResource() |
Dapatkan objek sambungan Jedis daripada kolam sambungan |
void close() |
Kaedah penutupan kolam sambungan, biasanya tidak menutup kolam sambungan |
需求:
使用连接池优化jedis操作
开发步骤
创建连接池配置对象,设置最大连接数10,设置用户最大等待时间2000毫秒
通过配置对象做为参数,创建连接池对象
从连接池里面获取jedis连接对象,执行redis命令。
执行redis命令sadd写入set集合类型的数据:students=白骨精,孙悟空,猪八戒
执行redis命令smembers读取集合中的数据
输出读取的数据
关闭连接对象(通常连接池不关闭)
运行效果
执行代码
package com.itheima.jedis; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.Set; /** * 创建Jedis连接池 */ public class Demo2 { public static void main(String[] args) { //1) 创建连接池配置对象,设置最大连接数10,设置用户最大等待时间2000毫秒 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(10); config.setMaxWaitMillis(2000); //2) 通过配置对象做为参数,创建连接池对象 JedisPool pool = new JedisPool(config, "localhost", 6379); //3) 从连接池里面获取jedis连接对象,执行redis命令。 Jedis jedis = pool.getResource(); //4) 执行redis命令sadd写入set集合类型的数据:students=白骨精,孙悟空,猪八戒 jedis.sadd("students", "白骨精", "孙悟空", "猪八戒"); //5) 执行redis命令smembers读取集合中的数据 Set<String> students = jedis.smembers("students"); //6) 输出读取的数据 System.out.println(students); //7) 关闭连接对象(通常连接池不关闭) jedis.close(); pool.close(); } }
java.util.ResourceBundle类是专门用于:读取类路径下Properties配置文件的类
java.util.ResourceBundle类 |
功能 |
static ResourceBundle getBundle("配置基名") |
通过自己的静态方法创建ResourceBundle对象 参数:放在src下.properties文件。参数中不用写扩展名,只要有主名就可以了 |
String getString("键名") |
通过键得到值 |
案例:得到druid.properties中的url属性
package com.itheima.jedis; import java.util.ResourceBundle; /** * 读取属性文件 */ public class Demo3 { public static void main(String[] args) { //得到资源绑定对象 ResourceBundle bundle = ResourceBundle.getBundle("druid"); System.out.println(bundle.getString("url")); } }
需求:
实现连接池工具类,通过工具类得到Jedis连接对象,配置参数写在属性文件中
调用工具类,对Redis数据库进行操作
执行效果:
实现步骤:
在src目录下创建连接池的工具类: jedis.properties
创建静态成员变量JedisPool对象
在静态代码块中,读取src下的配置文件,得到ResourceBundle对象
得到上面的四个参数,其中host是字符串类型,其它参数要转成整数类型
实例化配置对象,实例化连接池对象
编写静态方法getJedis()返回Jedis对象
创建hash对象:键employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000
使用hgetall读取hash对象输出
关闭jedis对象
jedis.properties配置文件
# 主机名 host=localhost # 端口号 port=6379 # 最大连接数 maxTotal=20 # 最长等待时间 maxWaitMillis=3000
JedisUtils.java
package com.itheima.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.ResourceBundle; /** * 连接池工具类 */ public class JedisUtils { //创建一个连接对象 private static JedisPool pool; static { //创建连接池的配置对象 JedisPoolConfig config = new JedisPoolConfig(); //设置最大连接数和最长等待时间 ResourceBundle bundle = ResourceBundle.getBundle("jedis"); //得到配置文件中的属性值 String host = bundle.getString("host"); int port = Integer.parseInt(bundle.getString("port")); int maxTotal = Integer.parseInt(bundle.getString("maxTotal")); int maxWaitMillis = Integer.parseInt(bundle.getString("maxWaitMillis")); //设置配置对象的参数 config.setMaxTotal(maxTotal); config.setMaxWaitMillis(maxWaitMillis); //创建连接池对象 pool = new JedisPool(config, host, port); } /** * 得到redis连接对象 * @return */ public static Jedis getJedis() { return pool.getResource(); } }
使用工具类:
package com.itheima.jedis; import com.itheima.utils.JedisUtils; import redis.clients.jedis.Jedis; import java.util.Map; /** * 使用工具类 */ public class Demo4 { public static void main(String[] args) { //从工具类中得到Jedis对象 Jedis jedis = JedisUtils.getJedis(); //创建hash对象:键employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000 jedis.hset("employee", "name","NewBoy"); jedis.hset("employee", "salary","3000"); //使用hgetall读取hash对象输出 Map<String, String> employee = jedis.hgetAll("employee"); System.out.println(employee); //关闭jedis对象 jedis.close(); } }
推荐学习:Redis视频教程
Atas ialah kandungan terperinci Pembelajaran Redis: Penggunaan Asas Jedis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!