zoukankan      html  css  js  c++  java
  • Redis客户端

    1    Redis客户端

    1.1   自带命令行客户端

     

    l  命令格式:

    ./redis-cli -h 127.0.0.1 -p 6379

    l  修改redis配置文件(解决IP绑定问题)

     

    # bind 127.0.0.1   绑定的IP才能访问redis服务器,注释掉该配置

    protected-mode yes  是否开启保护模式,由yes该为no

     

    l  参数说明:

           -hredis服务器的ip地址

           -predis实例的端口号

    l  默认方式

    如果不指定主机和端口也可以

    ./redis-cli

    *默认主机地址是127.0.0.1

    * 默认端口是6379

     

    1.2   图形界面客户端(了解)

    前提:需要安装图形界面管理器

     

     

    1.2.1连接超时解决

    远程连接redis服务,需要关闭或者修改防火墙配置。

     

    修改防火墙设置:

    l  第一步:编辑iptables

    vim /etc/sysconfig/iptables

    在命令模式下,选定要复制的那一行的末尾,然后点击键盘yyp,就完成复制,然后修改

     

    l  第二步:重启防火墙

    service iptables restart

    iptables:清除防火墙规则:                                   [确定]

    iptables:将链设置为政策 ACCEPTfilter                   [确定]

    iptables:正在卸载模块:                                       [确定]

    iptables:应用防火墙规则:                                   [确定]

     

     

    1.2.2多数据库支持

    l  默认一共是16个数据库,每个数据库之间是相互隔离(但是可以使用flushall一次清空所有的库)。数据库的数量是在redis.conf中配置的。

     

     

    l  切换数据库使用命令:select数据库编号(0-15

    例如:select 1

     

    1.3   程序客户端之Java客户端Jedis

    1.3.1Jedis介绍

    l  Redis不仅使用命令客户端来操作,而且可以使用程序客户端操作。

    l  现在基本上主流的语言都有客户端支持,比如JavaCC#C++phpNode.jsGo等。

    l  在官方网站里列一些Java的客户端,有JedisRedissonJredisJDBC-Redis、等其中官方推荐使用JedisRedisson

    l  企业中用的最多的就是Jedis,下面我们就重点学习下Jedis

    l  Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis

     

    1.3.2添加jar

    <dependency>

                              <groupId>redis.clients</groupId>

                              <artifactId>jedis</artifactId>

                              <version>2.9.0</version>

                      </dependency>

     

    1.3.3单实例连接

    注意事项:需要去设置redis服务器的防火墙策略(临时关闭、永久关闭、端口暴露)

             @Test

             publicvoid testJedis() {

                      //创建一个Jedis的连接

                      Jedis jedis = new Jedis("127.0.0.1", 6379);

                      //执行redis命令

                      jedis.set("key1", "hello world");

                      //redis中取值

                      String result = jedis.get("key1");

                      //打印结果

                      System.out.println(result);

                      //关闭连接

                      jedis.close();

                     

             }

     

    1.3.4连接池连接

             @Test

             publicvoid testJedisPool() {

                      //创建一连接池对象

                      JedisPool jedisPool = new JedisPool("127.0.0.1", 6379);

                      //从连接池中获得连接

                      Jedis jedis = jedisPool.getResource();

                      String result = jedis.get("key1") ;

                      System.out.println(result);

                      //关闭连接

                      jedis.close();

                     

                      //关闭连接池

                      jedisPool.close();

             }

     

    1.3.5Spring整合JedisPool(自学)

    添加springjar

    l  配置spring配置文件applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"

             xmlns:context="http://www.springframework.org/schema/context"

             xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

             xsi:schemaLocation="http://www.springframework.org/schema/beans

                      http://www.springframework.org/schema/beans/spring-beans.xsd

                      http://www.springframework.org/schema/mvc

                      http://www.springframework.org/schema/mvc/spring-mvc.xsd

                      http://www.springframework.org/schema/context

                      http://www.springframework.org/schema/context/spring-context.xsd

                      http://www.springframework.org/schema/aop

                      http://www.springframework.org/schema/aop/spring-aop.xsd

                      http://www.springframework.org/schema/tx

                      http://www.springframework.org/schema/tx/spring-tx.xsd ">

     

             <!-- 连接池配置 -->

             <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">

                      <!-- 最大连接数 -->

                      <property name="maxTotal" value="30" />

                      <!-- 最大空闲连接数 -->

                      <property name="maxIdle" value="10" />

                      <!-- 每次释放连接的最大数目 -->

                      <property name="numTestsPerEvictionRun" value="1024" />

                      <!-- 释放连接的扫描间隔(毫秒) -->

                      <property name="timeBetweenEvictionRunsMillis" value="30000" />

                      <!-- 连接最小空闲时间 -->

                      <property name="minEvictableIdleTimeMillis" value="1800000" />

                      <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->

                      <property name="softMinEvictableIdleTimeMillis" value="10000" />

                      <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->

                      <property name="maxWaitMillis" value="1500" />

                      <!-- 在获取连接的时候检查有效性, 默认false -->

                      <property name="testOnBorrow" value="false" />

                      <!-- 在空闲时检查有效性, 默认false -->

                      <property name="testWhileIdle" value="true" />

                      <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->

                      <property name="blockWhenExhausted" value="false" />

             </bean>

     

             <!-- redis单机 通过连接池 -->

             <bean id="jedisPool" class="redis.clients.jedis.JedisPool"

                      destroy-method="close">

                      <constructor-arg name="poolConfig" ref="jedisPoolConfig" />

                      <constructor-arg name="host" value="192.168.242.130" />

                      <constructor-arg name="port" value="6379" />

             </bean>

    </beans>

     

    l  测试代码

    @Test

             publicvoid testJedisPool() {

                      JedisPool pool = (JedisPool) applicationContext.getBean("jedisPool");

                      Jedis jedis = null;

                      try {

                              jedis = pool.getResource();

     

                              jedis.set("name", "lisi");

                              String name = jedis.get("name");

                              System.out.println(name);

                      } catch (Exception ex) {

                              ex.printStackTrace();

                      } finally {

                              if (jedis != null) {

                                       // 关闭连接

                                       jedis.close();

                              }

                      }

             }

     

     

    1    Redis客户端

    1.1   自带命令行客户端

     

    l  命令格式:

    ./redis-cli -h 127.0.0.1 -p 6379

    l  修改redis配置文件(解决IP绑定问题)

     

    # bind 127.0.0.1   绑定的IP才能访问redis服务器,注释掉该配置

    protected-mode yes  是否开启保护模式,由yes该为no

     

    l  参数说明:

           -hredis服务器的ip地址

           -predis实例的端口号

    l  默认方式

    如果不指定主机和端口也可以

    ./redis-cli

    *默认主机地址是127.0.0.1

    * 默认端口是6379

     

    1.2   图形界面客户端(了解)

    前提:需要安装图形界面管理器

     

     

    1.2.1连接超时解决

    远程连接redis服务,需要关闭或者修改防火墙配置。

     

    修改防火墙设置:

    l  第一步:编辑iptables

    vim /etc/sysconfig/iptables

    在命令模式下,选定要复制的那一行的末尾,然后点击键盘yyp,就完成复制,然后修改

     

    l  第二步:重启防火墙

    service iptables restart

    iptables:清除防火墙规则:                                 [确定]

    iptables:将链设置为政策 ACCEPTfilter                    [确定]

    iptables:正在卸载模块:                                   [确定]

    iptables:应用防火墙规则:                                 [确定]

     

     

    1.2.2多数据库支持

    l  默认一共是16个数据库,每个数据库之间是相互隔离(但是可以使用flushall一次清空所有的库)。数据库的数量是在redis.conf中配置的。

     

     

    l  切换数据库使用命令:select数据库编号(0-15

    例如:select 1

     

    1.3   程序客户端之Java客户端Jedis

    1.3.1Jedis介绍

    l  Redis不仅使用命令客户端来操作,而且可以使用程序客户端操作。

    l  现在基本上主流的语言都有客户端支持,比如JavaCC#C++phpNode.jsGo等。

    l  在官方网站里列一些Java的客户端,有JedisRedissonJredisJDBC-Redis、等其中官方推荐使用JedisRedisson

    l  企业中用的最多的就是Jedis,下面我们就重点学习下Jedis

    l  Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis

     

    1.3.2添加jar

    <dependency>

                              <groupId>redis.clients</groupId>

                              <artifactId>jedis</artifactId>

                              <version>2.9.0</version>

                      </dependency>

     

    1.3.3单实例连接

    注意事项:需要去设置redis服务器的防火墙策略(临时关闭、永久关闭、端口暴露)

             @Test

             publicvoid testJedis() {

                      //创建一个Jedis的连接

                      Jedis jedis = new Jedis("127.0.0.1", 6379);

                      //执行redis命令

                      jedis.set("key1", "hello world");

                      //redis中取值

                      String result = jedis.get("key1");

                      //打印结果

                      System.out.println(result);

                      //关闭连接

                      jedis.close();

                     

             }

     

    1.3.4连接池连接

             @Test

             publicvoid testJedisPool() {

                      //创建一连接池对象

                      JedisPool jedisPool = new JedisPool("127.0.0.1", 6379);

                      //从连接池中获得连接

                      Jedis jedis = jedisPool.getResource();

                      String result = jedis.get("key1") ;

                      System.out.println(result);

                      //关闭连接

                      jedis.close();

                     

                      //关闭连接池

                      jedisPool.close();

             }

     

    1.3.5Spring整合JedisPool(自学)

    添加springjar

    l  配置spring配置文件applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"

             xmlns:context="http://www.springframework.org/schema/context"

             xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

             xsi:schemaLocation="http://www.springframework.org/schema/beans

                      http://www.springframework.org/schema/beans/spring-beans.xsd

                      http://www.springframework.org/schema/mvc

                      http://www.springframework.org/schema/mvc/spring-mvc.xsd

                      http://www.springframework.org/schema/context

                      http://www.springframework.org/schema/context/spring-context.xsd

                      http://www.springframework.org/schema/aop

                      http://www.springframework.org/schema/aop/spring-aop.xsd

                      http://www.springframework.org/schema/tx

                      http://www.springframework.org/schema/tx/spring-tx.xsd ">

     

             <!-- 连接池配置 -->

             <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">

                      <!-- 最大连接数 -->

                      <property name="maxTotal" value="30" />

                      <!-- 最大空闲连接数 -->

                      <property name="maxIdle" value="10" />

                      <!-- 每次释放连接的最大数目 -->

                      <property name="numTestsPerEvictionRun" value="1024" />

                      <!-- 释放连接的扫描间隔(毫秒) -->

                      <property name="timeBetweenEvictionRunsMillis" value="30000" />

                      <!-- 连接最小空闲时间 -->

                      <property name="minEvictableIdleTimeMillis" value="1800000" />

                      <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->

                      <property name="softMinEvictableIdleTimeMillis" value="10000" />

                      <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->

                      <property name="maxWaitMillis" value="1500" />

                      <!-- 在获取连接的时候检查有效性, 默认false -->

                      <property name="testOnBorrow" value="false" />

                      <!-- 在空闲时检查有效性, 默认false -->

                      <property name="testWhileIdle" value="true" />

                      <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->

                      <property name="blockWhenExhausted" value="false" />

             </bean>

     

             <!-- redis单机 通过连接池 -->

             <bean id="jedisPool" class="redis.clients.jedis.JedisPool"

                      destroy-method="close">

                      <constructor-arg name="poolConfig" ref="jedisPoolConfig" />

                      <constructor-arg name="host" value="192.168.242.130" />

                      <constructor-arg name="port" value="6379" />

             </bean>

    </beans>

     

    l  测试代码

    @Test

             publicvoid testJedisPool() {

                      JedisPool pool = (JedisPool) applicationContext.getBean("jedisPool");

                      Jedis jedis = null;

                      try {

                              jedis = pool.getResource();

     

                              jedis.set("name", "lisi");

                              String name = jedis.get("name");

                              System.out.println(name);

                      } catch (Exception ex) {

                              ex.printStackTrace();

                      } finally {

                              if (jedis != null) {

                                       // 关闭连接

                                       jedis.close();

                              }

                      }

             }

     

     

  • 相关阅读:
    Jmeter性能监测及安装插件(推荐)
    测试用例使用传统excel还是思维导图(Xmind、MindManager等)?
    测试用例设计
    一个资深测试员的感悟
    log4j教程 10、PatternLayout
    log4j教程 9、HTMLLayout
    log4j教程 8、日志格式化
    log4j教程 7、日志记录级别
    log4j教程 6、Logger方法
    log4j教程 5、示例程序
  • 原文地址:https://www.cnblogs.com/ddqy/p/12234023.html
Copyright © 2011-2022 走看看