`

Java操作redis

阅读更多

Java操作redis很简单。创建一个普通的Java工程。然后导入redis依赖的jar包。jar包我已经上传了。

1.入门级的demo

入门级demo代码  收藏代码
  1. package com.bjsxt.test;  
  2.   
  3. import redis.clients.jedis.Jedis;  
  4.   
  5. public class RedisDemo {  
  6.       
  7.     public static Jedis getJedis(){  
  8.         Jedis jedis = null;  
  9.         jedis = new Jedis(FinalCollention.IP, 6379);  //redis服务器的ip和端口  
  10.         jedis.auth(FinalCollention.PASSWORD);  //连接redis的密码  
  11.         return jedis;  
  12.     }  
  13.     public void test(){  
  14.         Jedis jedis = null;  
  15.         try{  
  16.             jedis = getJedis();  
  17.             jedis.incr("test");  
  18.             long dbsize = jedis.dbSize();  
  19.             System.out.println("数据库大小:"+dbsize);  
  20.             System.out.println("测试test的值:"+jedis.get("test"));  
  21.               
  22.         }catch(Exception e){  
  23.             e.printStackTrace();  
  24.         }finally{  
  25.             if(jedis != null){  
  26.                 jedis.disconnect();  
  27.             }  
  28.         }  
  29.     }  
  30.     public static void main(String[] args) {  
  31.         RedisDemo demo = new RedisDemo();  
  32.         demo.test();  
  33.     }  
  34. }  

 

如果出现Java无法连接redis的异常,主要有三个方面的问题:

1.Java运行的主机ping一下redis服务器所在主机,看能否ping通

2.关闭redis服务器所在主机的防火墙

3.打开redis安装目录下的redis.conf文件。注释掉:bind 127.0.0.1这句话

注释掉bind代码  收藏代码
  1. # Accept connections on the specified port, default is 6379.  
  2. # If port 0 is specified Redis will not listen on a TCP socket.  
  3. port 6379  
  4.   
  5. # If you want you can bind a single interface, if the bind option is not  
  6. # specified all the interfaces will listen for incoming connections.  
  7. #  
  8. # bind 127.0.0.1  
  9. "redis.conf" 597L, 25667C written  

 特别说明:后面的实例,我就不使用try--catch了,但是自己写时一定要记着关闭连接

2.Java操作redis的各种数据结构

Redis的各种数据类型测试代码  收藏代码
  1. package com.bjsxt.test;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6.   
  7. import redis.clients.jedis.Jedis;  
  8.   
  9. public class RedisDataTypeDemo {  
  10.       
  11.     public static Jedis getJedis(){  
  12.         Jedis jedis = null;  
  13.         jedis = new Jedis(FinalCollention.IP, 6379);  //redis服务器的ip和端口  
  14.         jedis.auth(FinalCollention.PASSWORD);  //连接redis的密码  
  15.         return jedis;  
  16.     }  
  17.     /**  
  18.      *   
  19.      * @title demoKey  
  20.      * @description 测试Key  
  21.      * @author hadoop  
  22.      */  
  23.     public void demoKey(){  
  24.         Jedis jedis = RedisDataTypeDemo.getJedis();  
  25.         System.out.println("查看键为aa的是否存在:"+jedis.exists("aa"));  
  26.         System.out.println("查看键为aa的类型:"+jedis.type("aa"));  
  27.         System.out.println("随机获得一个key:"+jedis.randomKey());  
  28.         System.out.println("将aa重命名为bb:"+jedis.rename("aa""bb"));  
  29.         System.out.println("删除bb:"+jedis.del("bb"));  
  30.         //从上面的方法可以看出,redis提供的接口方法名和redis-cli客户端提供的方法名是一样的,所以,只要对redis客户端的命令熟悉,那么Java操作redis就不是问题  
  31.     }  
  32.     /**  
  33.      *   
  34.      * @title demoString  
  35.      * @description 测试String  
  36.      * @author hadoop  
  37.      */  
  38.     public void demoString(){  
  39.         Jedis jedis = RedisDataTypeDemo.getJedis();  
  40.         System.out.println("设置name:"+jedis.set("name""小花"));  
  41.         System.out.println("设置name1:"+jedis.set("name1""小花1"));  
  42.         System.out.println("设置那么2:"+jedis.set("name2""小花2"));  
  43.         System.out.println("设置name,如果存在返回0:"+jedis.setnx("name""小花哈哈"));  
  44.         System.out.println("获取key为name和name1的value值:"+jedis.mget("name","name1"));  
  45.         System.out.println("自增1:"+jedis.incr("index"));  
  46.         System.out.println("自增1:"+jedis.incr("index"));  
  47.         System.out.println("自增2:"+jedis.incrBy("count"2));  
  48.         System.out.println("自增2:"+jedis.incrBy("count"2));  
  49.         System.out.println("递减1:"+jedis.decr("count"));  
  50.         System.out.println("递减2:"+jedis.decrBy("index",2));  
  51.         System.out.println("在name后面添加String:"+jedis.append("name"",我爱你"));  
  52.         System.out.println("获取key为name的值:"+jedis.get("name"));  
  53.           
  54.     }  
  55.     /**  
  56.      *   
  57.      * @title demoList  
  58.      * @description 测试list数据类型  
  59.      * @author hadoop  
  60.      */  
  61.     public void demoList(){  
  62.         Jedis jedis = RedisDataTypeDemo.getJedis();  
  63.         //在头添加  
  64.         jedis.lpush("list""hadoop","hbase","hive","pig","zookeeper");  
  65.         //在末尾添加  
  66.         jedis.rpush("list""java","struts");  
  67.         //返回长度  
  68.         jedis.llen("list");  
  69.         //取值  
  70.         List<String> list = jedis.lrange("list"0, -1);  
  71.         for (String string : list) {  
  72.             System.out.println(string);  
  73.         }  
  74.     }  
  75.     /**  
  76.      *   
  77.      * @title demoSet  
  78.      * @description 测试set数据类型  
  79.      * @author hadoop  
  80.      */  
  81.     public void demoSet(){  
  82.         Jedis jedis = RedisDataTypeDemo.getJedis();  
  83.         jedis.sadd("city""北京","上海","重启","武汉");  
  84.         System.out.println("取出最上面的:"+jedis.spop("city"));  
  85.         System.out.println("随机取出一个值"+jedis.srandmember("city"));  
  86.         jedis.sadd("city2""北京","武汉","河北","张家界","辽林");  
  87.         System.out.println("交集:"+jedis.sinter("city","city1"));  
  88.         System.out.println("并集:"+jedis.sunion("city","city1"));  
  89.         System.out.println("差集:"+jedis.sdiff("city","city1"));  
  90.           
  91.     }  
  92.     /**  
  93.      *   
  94.      * @title demoMap  
  95.      * @description 测试map数据类型  
  96.      * @author hadoop  
  97.      */  
  98.     public void demoMap(){  
  99.         Jedis jedis = RedisDataTypeDemo.getJedis();  
  100.         jedis.hset("Mcity""c1""北京");  
  101.         System.out.println("取值:"+jedis.hget("city""c1"));  
  102.         Map<String,String> mcity = new HashMap<String, String>();  
  103.         mcity.put("c1""桂林");  
  104.         mcity.put("c2""天津");  
  105.         mcity.put("c3""合肥");  
  106.         jedis.hmset("Mcity2", mcity);  
  107.         List<String> list =  jedis.hmget("Mcity2""c1","c2","c3");  
  108.         for (String string : list) {  
  109.             System.out.println(string);  
  110.         }  
  111.         System.out.println(jedis.hlen("Mcity2"));  
  112.     }  
  113.     //测试  
  114.     public static void main(String[] args) {  
  115.         RedisDataTypeDemo rdr = new RedisDataTypeDemo();  
  116.         rdr.demoKey();  
  117.         rdr.demoList();  
  118.         rdr.demoMap();  
  119.         rdr.demoSet();  
  120.         rdr.demoString();  
  121.     }  
  122. }  

 3.Java操作redis的管道

管道代码  收藏代码
  1. package com.bjsxt.test;  
  2.   
  3. import redis.clients.jedis.Jedis;  
  4. import redis.clients.jedis.Pipeline;  
  5.   
  6. public class RedisPipelineDemo {  
  7.     public static Jedis getJedis(){  
  8.         Jedis jedis = null;  
  9.         jedis = new Jedis(FinalCollention.IP, 6379);  //redis服务器的ip和端口  
  10.         jedis.auth(FinalCollention.PASSWORD);  //连接redis的密码  
  11.         return jedis;  
  12.     }  
  13.       
  14.     public void hasPipeline(){  
  15.         Jedis jedis = RedisPipelineDemo.getJedis();  
  16.         System.out.println("开始:"+System.currentTimeMillis());  
  17.         Pipeline pl = jedis.pipelined();  
  18.         for(int i = 0 ; i < 1000 ; i++){  
  19.             pl.incr("testPL");  
  20.         }  
  21.         pl.sync();  
  22.         System.out.println("开始:"+System.currentTimeMillis());  
  23.     }  
  24.       
  25.     public void noPipeline(){  
  26.         Jedis jedis = RedisPipelineDemo.getJedis();  
  27.         System.out.println("开始:"+System.currentTimeMillis());  
  28.         for(int i = 0 ; i < 1000 ; i++){  
  29.             jedis.incr("testPL");  
  30.         }  
  31.         System.out.println("开始:"+System.currentTimeMillis());  
  32.     }  
  33. }  

 4.redis事务

Redis事务代码  收藏代码
  1. package com.bjsxt.test;  
  2.   
  3. import java.util.List;  
  4.   
  5. import redis.clients.jedis.Jedis;  
  6. import redis.clients.jedis.Transaction;  
  7.   
  8. public class RedisTXDemo {  
  9.     public static Jedis getJedis(){  
  10.         Jedis jedis = null;  
  11.         jedis = new Jedis(FinalCollention.IP, 6379);  //redis服务器的ip和端口  
  12.         jedis.auth(FinalCollention.PASSWORD);  //连接redis的密码  
  13.         return jedis;  
  14.     }  
  15.     /**  
  16.      *   
  17.      * @title txDemo  
  18.      * @description 没有异常的事务  
  19.      * @author hadoop  
  20.      */  
  21.     public void txDemo(){  
  22.         Jedis jedis = getJedis();  
  23.         //开启事务  
  24.         Transaction tx = jedis.multi();  
  25.           
  26.         tx.set("txcity""beijin");  
  27.         tx.sadd("hi""abc");  
  28.         tx.get("txcity");  
  29.         List<Object> objs = tx.exec();  
  30.           
  31.         for (Object object : objs) {  
  32.             System.out.println(object.toString());  
  33.         }  
  34.     }  
  35.       
  36.     /**  
  37.      *   
  38.      * @title txHasExDemo  
  39.      * @description 含有异常的事务  
  40.      * @author hadoop  
  41.      */  
  42.     public void txHasExDemo(){  
  43.         Jedis jedis = getJedis();  
  44.         //开启事务  
  45.         Transaction tx = jedis.multi();  
  46.           
  47.         tx.set("txcity1""beijin");  
  48.         tx.sadd("hi1""abc");  
  49.         int i = 1/0;  
  50.         tx.get("txcity1");  
  51.         List<Object> objs = tx.exec();  
  52.           
  53.         for (Object object : objs) {  
  54.             System.out.println(object.toString());  
  55.         }  
  56.     }  
  57.       
  58.     public static void main(String[] args) {  
  59.         RedisTXDemo redisTXDemo = new RedisTXDemo();  
  60.         redisTXDemo.txDemo();  
  61.         redisTXDemo.txHasExDemo();  
  62.     }  
  63. }  

 从上面的方法可以看出,redis提供的接口方法名和redis-cli客户端提供的方法名是一样的,所以,只要对redis客户端的命令熟悉,那么Java操作redis就不是问题

分享到:
评论

相关推荐

    java操作redis.docx

    Java 操作 Redis Java 操作 Redis 是使用 Java 语言来访问和操作 Redis 数据库的方法。Redis 是一个高性能的 NoSQL 数据库,使用 Java 语言来操作它可以提高开发效率和性能。本文档将详细介绍使用 Java 操作 Redis...

    java操作redis数据库实例

    Java操作Redis数据库是一种常见的数据交互方式,特别是在高并发、低延迟的场景中,Redis作为内存数据库的优势被广泛应用。本文将详细讲解如何使用Java与Redis进行交互,并提供源码实例。 首先,我们需要了解Redis的...

    java操作redis

    ### Java 操作 Redis 的关键技术知识点 #### 一、Redis 基础概念 Redis 是一款开源的、基于内存的操作系统级别的 key-value 数据库。相比于传统的 key-value 存储系统如 Memcached,Redis 提供了更加丰富的数据...

    java操作redis所需jar包.zip

    Java操作Redis通常依赖于Jedis库,这是一个Java客户端,用于连接和操作Redis键值存储系统。Jedis提供了丰富的API,可以执行多种Redis命令,包括数据结构操作、事务处理、发布/订阅等功能。在这个"java操作redis所需...

    Java操作Redis的多种数据类型

    本文将深入探讨如何使用Java操作Redis的四种主要数据类型:字符串(String)、列表(List)、哈希(Hash)和集合(Set)。 首先,我们来看**字符串类型**(String)。在Redis中,字符串是最基础的数据类型,可以...

    完整的java操作redis demo

    Java操作Redis是一个常见的任务,特别是在大数据处理、缓存管理和分布式系统中。Redis是一个高性能的键值存储系统,常被用于数据库、缓存和消息中间件。Jedis是Java社区广泛使用的Redis客户端,提供了丰富的API来...

    Java操作redis小案例

    本篇文章将深入探讨如何使用Java操作Redis,并通过一个小型案例来展示其实现过程。 首先,要进行Java与Redis的交互,我们需要引入相应的Java客户端库,例如Jedis或Lettuce。在这个小案例中,我们以Jedis为例,因为...

    java操作redis代码和redis工具类相关包资料

    本资料包提供了关于Java操作Redis的代码示例和工具类,旨在帮助开发者更好地理解和应用Java与Redis的集成。 首先,让我们深入了解一下Redis。Redis是一个开源的内存数据结构存储系统,支持数据类型如字符串、哈希、...

    java操作redis工具类与配置文件,详细版

    下面我们将详细介绍Java操作Redis的工具类以及配置文件的设置。 **1. Jedis库的引入** 首先,我们需要在项目中引入Jedis库。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;redis....

    java操作redis所需jar

    Java操作Redis所需jar主要指的是`jedis`库,这是一个Java客户端,用于连接和操作Redis数据库。Redis是一个高性能的键值存储系统,常被用作数据缓存、消息队列以及数据库。在Java环境中,Jedis提供了丰富的API,使得...

    java操作redis工具类

    这个"java操作redis工具类"就是这样的一个实用组件,它简化了与Redis服务器的交互,使得代码更简洁、易维护。 首先,让我们了解一下Redis的基本概念。Redis是一个开源的、基于内存的数据结构存储系统,支持多种数据...

    Java操作Redis实例,操作封装

    本文将深入探讨如何使用Jedis进行Java操作Redis的实例,包括对象的保存、查询以及客户端连接资源管理。 首先,我们需要引入Jedis的依赖库,通常通过Maven或Gradle添加到项目中。对于Maven用户,可以在pom.xml文件中...

    java操作redis所需jar包五个

    内含五个jar包!!!redis是一个key-value存储系统。和Memcached类似,它支持存储的...区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

    java连接Redis所需jar包

    Jedis是Java客户端的一个轻量级、开源的实现,它提供了丰富的命令支持,使得Java开发者能够方便地操作Redis。 1. Jedis.jar: 这是Java连接Redis的核心库,包含了所有与Redis服务器交互的API。Jedis提供了一系列的...

    jedis.rar(java操作redis依赖)2.9.0

    Java操作Redis是一个常见的任务,特别是在构建高性能、高并发的分布式应用中。Jedis是一个轻量级的Java客户端,专门用于连接和操作Redis数据库。在这个"jedis.rar"压缩包中,包含的是Jedis库的2.9.0版本,它是Java...

Global site tag (gtag.js) - Google Analytics