• Java操作redis简单示例


    第一:安装Redis
        首先我们要安装Redis,就像我们操作数据库一样,在操作之前肯定要先创建好数据库的环境。
        Redis的下载可以百度一下,或者打开下面的下载链接:
        https://github.com/MSOpenTech/redis

        也可以从我的百度网盘下载,下载链接:
        http://pan.baidu.com/s/1pJmaZ71
       
        Redis有Linux版本的也有Windows版本的,我们练习的话一般都是Win版,操作比较简单。下载之后,压缩文件里面有Win 32位的和Win 64位的两个版本,自己根据个人系统进行选择。

    第二:解压文件,运行Redis服务
                

        先说一下Redis解压之后我们看到的几个文件的作用:
         redis-benchmark.exe:性能测试工具,可以用以模拟同时由N个客户端发送M个 SETS/GETS 查询 (有点像于 Apache 的ab 压力工具).
         redis-check-aof.exe:更新日志检查工具
         redis-check-dump.exe:本地数据库检查工具
         redis-cli.exe:客户端工具
         redis-server.exe:服务端工具  
         redis.conf: Redis的配置文件
        其中,红色加粗的是我们经常用到的。

    第三:启动Redis服务
        两种启动方式:
        ① 进入到Redis所在目录,按住shift,右击,“在此处打开命令窗口”或者打开cmd,自己cd进去,不过这样比较麻烦

       
        输入: redis-server.exe

        
        这样的话我们的Redis服务就启动了,注意,不要关闭cmd窗口

        另外,我们在启动Redis的时候可以给它指定参数文件,格式如下:
            redis-server.exe 配置文件路径
        例如:
            redi-server.exe redis.conf
        ② 通过配置环境变量直接运行
            具体的配置方法如下:
               


               

        在“变量值”一栏写入你的Redis安装目录即可。配置好环境变量之后只要打开cmd,直接输入redis-server.exe就可以启动服务,就行不用cd的redis的安装目录执行了。

    第四:编写java测试代码
        ①新建java项目
        ②导入redis包
            Redis的jar包下载链接:
            jedis-2.1.0.jar http://pan.baidu.com/s/1mgxCyvu
            commons-pool-1.5.5.jar  http://pan.baidu.com/s/1gdGd0Sb
        ③编写代码

     1 package com.gf.redisdemo_2;
     2 
     3 import java.text.SimpleDateFormat;
     4 import java.util.ArrayList;
     5 import java.util.Date;
     6 import java.util.Iterator;
     7 import java.util.List;
     8 import java.util.Set;
     9 
    10 import redis.clients.jedis.Jedis;
    11 import redis.clients.jedis.JedisPool;
    12 import redis.clients.jedis.JedisPoolConfig;
    13 import redis.clients.jedis.JedisShardInfo;
    14 import redis.clients.jedis.ShardedJedis;
    15 import redis.clients.jedis.ShardedJedisPool;
    16 
    17 public class TestRedis {
    18     
    19     //声明
    20     private Jedis jedis;//非切片额客户端连接
    21     private ShardedJedis shardedJedis;//切片额客户端连接
    22     private JedisPool jedisPool;//非切片连接池
    23     private ShardedJedisPool shardedJedisPool;//切片连接池
    24     
    25     //构造
    26     public TestRedis() {
    27         initJedisPool();
    28         initSharededJedisPool();
    29         jedis=jedisPool.getResource();
    30         shardedJedis=shardedJedisPool.getResource();
    31     }
    32     
    33     //初始化SharededJedisPool
    34     private void initSharededJedisPool() {
    35         //配置参数
    36         JedisPoolConfig config=new JedisPoolConfig();
    37         config.setMaxActive(50);
    38         config.setMaxIdle(5);
    39         config.setMaxWait(2000l);
    40         config.setTestOnBorrow(true);
    41         JedisShardInfo jedisShardInfo=new JedisShardInfo("127.0.0.1", 6379);//地址,端口
    42         List<JedisShardInfo> list=new ArrayList<JedisShardInfo>();
    43         list.add(jedisShardInfo);
    44         shardedJedisPool=new ShardedJedisPool(config, list);
    45     }
    46 
    47     //初始化JedisPool
    48     private void initJedisPool() {
    49         JedisPoolConfig config=new JedisPoolConfig();
    50         config.setMaxActive(50);
    51         config.setMaxIdle(5);
    52         config.setMaxWait(2000l);
    53         config.setTestOnBorrow(true);
    54         //此处配置与初始化SharededJedisPool用到的代码一样
    55         jedisPool=new JedisPool(config, "127.0.0.1", 6379);
    56     }
    57 
    58     public void showInfo() {
    59         Date date=new Date();
    60         SimpleDateFormat sdf=new SimpleDateFormat("YYYY年MM月dd日 hh:mm:ss");
    61         
    62         System.out.println(">>>>>>>清空数据库:"+sdf.format(date));
    63         System.out.println(jedis.flushDB());
    64         System.out.println(">>>>>>>set:"+sdf.format(date));
    65         System.out.println(shardedJedis.set("name", "zhangsan"));
    66         System.out.println(">>>>>>>get:"+sdf.format(date));
    67         System.out.println(shardedJedis.get("name"));
    68 
    69         System.out.println(">>>>>>获取所有的键值:"+sdf.format(date));
    70         Set<String> set=jedis.keys("*");
    71         Iterator<String> iterator=set.iterator();
    72         while (iterator.hasNext()) {
    73             String key=iterator.next();
    74             System.out.println(key+",值:"+shardedJedis.get(key));
    75         }
    76     }
    77 
    78     public static void main(String[] args) {
    79         new TestRedis().showInfo();
    80     }
    81 
    82 }


    可能刚开的时候对Jedis、ShardedJedis、JedisPool、SharededJedisPool的初始化顺序理不清,容易混乱,为此我们声明的时候就按照一定的规律去声明:

    Jedis---ShardedJedis        JedisPool----ShardJedisPool。

    初始化图如下:
       

    根据图示可以看出,我们要初始化Jedis、ShardedJedis就要先创建SharedJedis和ShardedJedisPool,于是有了initJedisPool()和initSharededJedisPool()方法


    说明:如果你在启动Redis时使用了配置文件,并且在配置文件里面开启了登陆密码(查找redis.conf的“requirepass 密码”,把注释解掉),如果直接运行以上代码会看到一下错误信息:

  • 相关阅读:
    MySQL进阶
    对象关系_many2many
    objectstate对象三种状态
    自动在数据库中创建表
    Pytest学习之使用多个fixture
    Pytest学习之fixture作用范围(scope)
    python测试dubbo类型接口
    swagger接口注释添加,接口版本变更规则
    Pytest-skip跳过功能
    接口自动化测试介入项目管理流程
  • 原文地址:https://www.cnblogs.com/geekworld/p/3949056.html
Copyright © 2020-2023  润新知