`
raymond.chen
  • 浏览: 1436939 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Jedis操作redis的范例(一)

 
阅读更多

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

 

1、基本类型操作

/**
 * set:设置key值
 * get:获取key值
 * del:删除key
 * append:追加key值
 * incr:key值自增1
 * incrBy:key值自增,指定步长
 * decr:key值自减1
 * decrBy:key值自减,指定步长
 * expire:为key设置过期时间(秒数)
 * setex:设置key值,可指定存活时间(秒数)
 * setnx:设置key值。key不存在才会设置,如果key存在则回滚操作,结果返回0,表示没有设置成功
 * ttl:time to live,获取key的存活时间(秒),-1表示永不过期
 * persist:去掉key的expire设置,不再有失效时间
 */
private static void commonTest(){
	jedis.del("username");
	
	System.out.println("get: " + jedis.get("username")); 
	jedis.set("username", "cjm");
	jedis.append("username", ", hello!");
	System.out.println("get: " + jedis.get("username"));
	jedis.del("username");
	System.out.println("get: " + jedis.get("username"));
	
	System.out.println("incr: " + jedis.incr("count"));
	System.out.println("decr: " + jedis.decr("count2")); 
	System.out.println("decrBy: " + jedis.decrBy("count2", 2)); 
	
	/*
	jedis.expire("count2", 3); //item在3秒钟后过期
	try {
		TimeUnit.SECONDS.sleep(4);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
	System.out.println("get: " + jedis.get("count2"));
	
	jedis.setex("count2", 3, "111"); //item存活3秒钟
	try {
		TimeUnit.SECONDS.sleep(4);
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
	System.out.println("get: " + jedis.get("count2"));
	*/
	
	System.out.println("setnx: " + jedis.setnx("count", "0"));
	
	jedis.setex("count", 30, "111");
	System.out.println(jedis.ttl("count")); 
	jedis.persist("count"); 
	System.out.println(jedis.ttl("count"));
	
	/*
	 * nxxx的值只能取NX或者XX,如果取NX,则只有当key不存在时才进行set,如果取XX,则只有当key已经存在时才进行set
	 * expx的值只能取EX或者PX,代表数据过期时间的单位,EX代表秒,PX代表毫秒
	 */
	System.out.println(jedis.get("count3"));
	String val = jedis.set("count3", "111", "NX", "EX", 3); //成功返回OK,失败返回null
	System.out.println(val);
}

 

2、Map类型操作

/**
 * hmset:设置key值,值类型为map对象
 * type:返回key值的类型,可能值有none, string, hash, set, list, zset
 * hkeys:获取所有key
 * hvals:获取所有key对应的值
 * hmget:一次性获取多个field的值
 * hexists:判断field是否存在
 * hset:设置field的值
 * hgetAll:获取全部内容
 * hget:获取field的值
 * hdel:删除field
 * hincrBy:field值自增1
 * hlen:计算field的数目
 * hsetnx:设置key值。field不存在才会设置,如果field存在则回滚操作,结果返回0,表示没有设置成功。可以用来实现分布式锁
 */
private static void testMap(){
	jedis.del("user");
	
	Map<String, String> map = new HashMap<String, String>();
	map.put("name", "cjm");
	map.put("age", "33");
	map.put("qq", "123456");
	
	jedis.hmset("user", map);
	System.out.println("type: " + jedis.type("user")); 
	
	System.out.println("hkeys: " + jedis.hkeys("user")); 
	System.out.println("hvals: " + jedis.hvals("user"));
	
	System.out.println("hmget: " + jedis.hmget("user", "name", "age")); 
	System.out.println("hexists: " + jedis.hexists("user", "name"));
	
	jedis.hset("user", "pwd", "123"); 
	System.out.println("hgetAll: " + jedis.hgetAll("user")); 
	System.out.println("hget: " + jedis.hget("user", "pwd")); 
	jedis.hdel("user", "qq"); 
	System.out.println("hincrBy: " + jedis.hincrBy("user", "count", 1)); 
	System.out.println("hlen: " + jedis.hlen("user")); 
	
	Long r = jedis.hsetnx("user", "pwd2", "456"); 
	System.out.println(r);
}

 

3、Set类型操作

/**
 * sadd:往set对象中添加一个值
 * smembers:取得set中所有的值
 * sismember:判断一个值是否在set中存在
 * srandmember:从set中随机取得一个值
 * srem:从set中删除一个值
 * scard:返回set的item个数
 */
private static void testSet(){
	jedis.del("uid");
	
	jedis.sadd("uid", "u001");
	jedis.sadd("uid", "u002");
	jedis.sadd("uid", "u003");
	jedis.sadd("uid", "u004");
	jedis.sadd("uid", "u005");
	System.out.println("type: " + jedis.type("uid"));
	
	System.out.println(jedis.smembers("uid")); 
	System.out.println(jedis.sismember("uid", "u006"));
	System.out.println(jedis.srandmember("uid"));
	jedis.srem("uid", "u003"); 
	System.out.println(jedis.smembers("uid"));
	System.out.println(jedis.scard("uid")); 
}

 

4、List类型操作

/**
 * 可以实现队列的功能
 * 
 * rpush:从列表尾部插入多个元素
 * llen:返回列表中的元素的数量
 * lpop:从列表头部移除并返回list的第一个元素
 * lrem:从头部开始找,删除n个值
 * lrange:从列表中获取指定范围的子集
 */
private static void testList(){
	jedis.del("list");
	jedis.rpush("list", "111", "222", "333"); 
	System.out.println("llen: " + jedis.llen("list")); 
	String item = jedis.lpop("list"); 
	System.out.println("lpop: " + item);
	System.out.println("llen: " + jedis.llen("list"));
	jedis.rpush("list", "444", "555", "666");
	jedis.lrem("list", 1, "666");
	System.out.println(jedis.lrange("list", 0, jedis.llen("list"))); 
}

 

分享到:
评论

相关推荐

    Jedis操作redis服务实例

    此外,对于日志记录,`systemlog`可能是指在使用Jedis操作Redis时,记录系统日志或Redis操作日志。通常,我们可以利用Java的日志框架(如Log4j、SLF4J等)记录关键操作,以便于调试和监控系统的运行状态。 总之,...

    Jedis操作Redis的案例

    而Jedis是Java语言连接Redis的客户端,提供了丰富的API供开发者进行数据操作。本案例将深入探讨如何利用Jedis在Java环境下与Redis进行交互,涉及的技术栈包括MyBatis持久层框架、Jedis工具类、Servlet以及JSP页面。 ...

    Jedis操作redis代码示例

    本文将深入探讨如何使用Jedis进行Redis操作,并通过具体的代码示例来详细解析其API的使用。 首先,我们需要了解如何添加Jedis依赖到项目中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml ...

    使用 Jedis 操作 Redis 数据库 博客代码示例

    【Redis】使用 Jedis 操作 Redis 数据库 ② ( Jedis API 规律 | Redis 命令与 Jedis 函数名称基本一致 | Jedis API 使用示例 ) https://hanshuliang.blog.csdn.net/article/details/129128393 博客代码示例

    jedis通过JedisSentinelPool获取jedis操作redis

    jedis通过JedisSentinelPool获取jedis操作redis,通过配置sentienl,获取sentinel连接池,通过sentinel,获取jedis信息

    spring-data + jedis + redis代码

    Jedis是Java的一个开源客户端,专门用于连接和操作Redis服务器。 首先,让我们详细了解一下Spring Data。Spring Data是一个模块化的项目,它的主要目标是通过提供统一的API来减少数据访问层的开发工作。这个框架...

    Jedis 操作Redis 集群demo

    本示例主要讨论如何使用Jedis来操作Redis集群。 首先,要理解Redis集群的基本概念。Redis集群是通过将数据分散在多个节点上来实现高可用性和可扩展性的。每个节点负责一部分键的存储,键的分布遵循槽(slot)的概念...

    Java通过Jedis操作Redis

    而Java作为广泛使用的编程语言,通过Jedis库与Redis进行交互,实现了对Redis丰富的操作功能。本文将深入探讨如何使用Java和Jedis来操作Redis,涉及Redis的基本数据类型、主从复制以及事务处理。 首先,让我们了解...

    各种版本的redis+Jedis驱动包

    综上所述,这个压缩包提供了全面的Redis部署选项和Java开发工具,无论是在Windows还是Linux环境下,都可以快速搭建和管理Redis服务器,并使用Jedis进行高效的数据操作。对于初学者和开发者来说,这是一个非常实用的...

    jedis操作redis工具类,使用该工具类无需配置spring

    总的来说,使用Jedis操作Redis的工具类可以极大地方便Java开发者在项目中集成Redis,提高开发效率,同时避免直接操作连接可能导致的资源泄露等问题。只需根据实际需求调用工具类的方法,即可实现各种Redis数据操作,...

    jedis操作Redis

    在提供的压缩包文件`jedisTest`中,可能包含了一个或多个Java测试类,这些类展示了如何使用Jedis进行各种Redis操作。例如,一个简单的测试类可能会包括以下内容: ```java import redis.clients.jedis.Jedis; ...

    Jedis操作Redis数据库的方法

    Jedis 是 Java 语言中的一种 Redis 客户端库,它提供了便捷的方法来操作 Redis 数据库。下面将详细介绍 Jedis 操作 Redis 数据库的方法。 导包 在使用 Jedis 操作 Redis 数据库之前,需要将 Jedis 库导入到项目中...

    Java中利用jedis操作redis示例.zip

    Jedis是Java社区广泛使用的Redis客户端,它提供了丰富的API来操作Redis服务器。下面我们将深入探讨如何使用Jedis进行Redis操作,并通过实际示例来加深理解。 1. **安装与依赖** 首先,要在Java项目中使用Jedis,...

    Java使用Jedis操作Redis服务器的实例代码

    Java使用Jedis操作Redis服务器的实例代码 title: Java使用Jedis操作Redis服务器的实例代码 本篇文章主要介绍了Java使用Jedis操作Redis服务器的实例代码,包括Maven配置、简单应用、JedisPool的实现和使用pipeline...

    jedis-2.9.0.jar和commons-pool2-2.6.0.jar下载(jedis连接redis数据库)

    其中,`jedis-2.9.0.jar`是Jedis的特定版本,它是Java开发人员用来操作Redis的客户端库。`commons-pool2-2.6.0.jar`是Apache Commons Pool的第二个主要版本,这是一个对象池服务,它在Jedis中用于管理Redis连接池。 ...

    jedis调用redis源码Demo

    jedis调用redis源码Demo,直接导入工程就可以运行。 redis目录下有redis安装文件和入门电子书 redis64-2.8.9.zip redisbin_x32.zip Redis入门指南(JB51.NET).pdf Redis设计与实现.pdf src: FirestJedisTest.java ...

    redis博客总集-jedis连接redis的所有操作

    Jedis是Java语言中使用Redis的一个常用客户端库,提供了丰富的API来执行各种Redis操作。本篇文章将详细探讨如何使用Jedis连接Redis并进行各种操作。 首先,要使用Jedis,你需要在项目中引入其依赖。在`pom.xml`文件...

    java redis使用之利用jedis实现redis消息队列.docx

    ### Java Redis 使用之利用 Jedis 实现 Redis 消息队列 #### 一、引言 随着互联网应用的发展,消息队列在系统架构中的地位愈发重要。它不仅可以提高系统的响应速度,还可以帮助开发者构建出更加健壮、可扩展的应用...

    jedis中的redis命令

    Jedis是Java语言实现的Redis客户端库,它提供了一系列方法,方便Java开发者能够操作Redis数据库,执行各种数据库操作。Redis是一种开源的高性能键值存储数据库,广泛应用于缓存、会话管理、消息队列等场景。本文将...

    redis相关jar包(redis2.1.5、jedis2.9.0)

    Jedis是Java社区广泛使用的Redis客户端库,版本2.9.1包含了对Redis各种命令的支持,包括基本的键值操作、事务处理、发布订阅、Lua脚本执行等功能。Jedis提供了简单易用的API,使得Java开发者可以方便地与Redis服务器...

Global site tag (gtag.js) - Google Analytics