zoukankan      html  css  js  c++  java
  • Jedis工具类使用及设置

    Jedis是Redis数据库的java工具类,类似于JDBC中的Connection,也是对数据库进行CRUD的通道(这样说是不是有点不严谨~~~)

    附上几个Redis的通用命令:

    key* 查看所有的key值

    type   key 获得key的数据类型

    del key [key.....]
            可以删除一个或多个键,返回值是删除的键的个数
    exists key 判断key是否存在

    Jedis一般工具类的编写,如图:(此处以本机为数据库)

    代码如下:

     1 package com.didinx.filter;
     2 
     3 import redis.clients.jedis.Jedis;
     4 
     5 /**
     6  * @author o_0sky
     7  * @date 2019/2/14 1:07
     8  */
     9 public class Jedis1 {
    10     public static void main(String[] args) {
    11         //创建redis核心对象
    12         Jedis jedis = new Jedis("localhost", 6379);
    13         //存值
    14         jedis.set("key", "value");
    15         //取值并打印
    16         System.out.println(jedis.get("key"));
    17         //释放资源
    18         jedis.close();
    19     }
    20 }

     jedis如同connection一样,连接资源的创建和销毁都会很消耗性能,所以jedis提供了池化技术,下图是常用的池化技术的参数列表:

    联系上图:

    池化技术代码如下:

     1 package com.didinx.filter;
     2 
     3 import redis.clients.jedis.Jedis;
     4 import redis.clients.jedis.JedisPool;
     5 import redis.clients.jedis.JedisPoolConfig;
     6 
     7 /**
     8  * @author o_0sky
     9  * @date 2019/2/14 1:33
    10  */
    11 public class JedisPool1 {
    12     public static void main(String[] args) {
    13         //生成连接池配置对象,设置配置项
    14         JedisPoolConfig config = new JedisPoolConfig();
    15         //最大连接数
    16         config.setMaxTotal(100);
    17         //最大空闲数
    18         config.setMaxIdle(20);
    19         //获得连接池
    20         JedisPool jedisPool = new JedisPool(config, "localhost", 6379);
    21         Jedis jedis = null;
    22         try {
    23             //从连接池获取连接
    24             jedis = jedisPool.getResource();
    25             //给连接赋值
    26             jedis.set("age", "30");
    27             //从连接池中取值并打印
    28             System.out.println(jedis.get("age"));
    29         } catch (Exception e) {
    30             e.printStackTrace();
    31         } finally {
    32             //此处jedis.close()并不是销毁连接,而是将连接返回连接池
    33             if (null != jedis) {
    34                 jedis.close();
    35             }
    36         }
    37         //电脑关闭时,关闭连接池
    38         if (null != jedisPool) {
    39             jedisPool.close();
    40         }
    41 
    42     }
    43 }

    如同JDBC,Jedis也有工具类,配置文件为properties格式,代码如下:

     1 package didinx;
     2 
     3 import redis.clients.jedis.Jedis;
     4 import redis.clients.jedis.JedisPool;
     5 import redis.clients.jedis.JedisPoolConfig;
     6 
     7 import java.util.ResourceBundle;
     8 
     9 /**
    10  * @author o_0sky
    11  * @date 2019/2/14 1:49
    12  */
    13 public class JedisUtil {
    14     //设置参数
    15     private static String host;
    16     private static int port;
    17     private static int maxtotal;
    18     private static int maxwaitmillis;
    19     private static JedisPool jedisPool;
    20 
    21     //加载配置文件并给参数赋值
    22     static {
    23         ResourceBundle rb = ResourceBundle.getBundle("jedis");
    24         maxtotal = Integer.parseInt(rb.getString("maxtotal"));
    25         maxwaitmillis = Integer.parseInt(rb.getString("maxwaitmillis"));
    26         port = Integer.parseInt(rb.getString("port"));
    27         host = rb.getString("host");
    28     }
    29 
    30     /**
    31      * 初始化连接池
    32      */
    33     static {
    34         JedisPoolConfig config = new JedisPoolConfig();
    35         config.setMaxTotal(maxtotal);
    36         config.setMaxWaitMillis(maxwaitmillis);
    37         jedisPool = new JedisPool(config, host, port);
    38     }
    39 
    40     /**
    41      * 获取连接方法
    42      *
    43      * @return
    44      */
    45     public static Jedis getJedis() {
    46         return jedisPool.getResource();
    47     }
    48 
    49     /**
    50      * 释放资源
    51      *
    52      * @param jedis
    53      */
    54     public static void closeJedis(Jedis jedis) {
    55         if (null != jedis) {
    56             jedis.close();
    57         }
    58     }
    59 }
  • 相关阅读:
    [C++]DirectShow检测音视频输入设备及其采集参数
    [C#] 使用Accord.Net,实现相机画面采集,视频保存及裁剪视频区域,利用WriteableBitmap高效渲染
    [C#]使用第三方开源库iText7.pdfHtml,将Html转换成Pdf,以及如何以Html作为打印模板
    C# 佳能相机SDK对接,采集并保存视频,使用WriteableBitmap高效渲染
    wpf常用类型转换器,支持基元类型、可空基元类型、枚举
    wpf单位转换及DPI获取
    使用wpf技术实现画图工具
    InstallShield 创建 visual studio 工程的时候 指向 任意 visual studio 版本 方法 (修改 计算机 默认 visual studio shell 版本)
    WPF ScrollViewer(滚动条) 自定义样式表制作 再发一套样式 细节优化
    C#实现屏幕指定区域截屏
  • 原文地址:https://www.cnblogs.com/linsky/p/10367848.html
Copyright © 2011-2022 走看看