- 浏览: 429665 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (269)
- 原创 (7)
- Java (51)
- Java Concurrency (2)
- IDE (16)
- Linux (46)
- Database (23)
- NoSQL (35)
- Web服务器 (23)
- Log日志 (11)
- HTTP (11)
- HTML (2)
- XML (1)
- Test (7)
- Mina (0)
- Amoeba (4)
- Cobar (1)
- 序列化 (2)
- Python (5)
- PHP (1)
- Socket通信 (1)
- Network (3)
- Struts (2)
- Web前端 (10)
- Maven (6)
- SVN (15)
- Json (1)
- XMPP (2)
- Go (1)
- Other (4)
- 未整理 (5)
最新评论
-
u012374672:
[color=darkred][/color][flash=2 ...
Mongo的ORM框架的学习Morphia(annotations) -
b_l_east:
很有问题啊
利用redis的transaction功能,实现分布式下加锁
package jedis; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.junit.After; import org.junit.Before; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; /** * @Company:www.shopin.net User: minxr Date: 11-9-9 Time: 下午5:44 */ public class TestJedis { JedisPool pool; Jedis jedis; @Before public void setUp() { pool = new JedisPool(new JedisPoolConfig(), "172.16.100.184"); jedis = pool.getResource(); jedis.auth("password"); } /** * Redis存储初级的字符串 CRUD */ // @Test public void testBasicString() { // -----添加数据---------- jedis.set("name", "minxr");// 向key-->name中放入了value-->minxr System.out.println(jedis.get("name"));// 执行结果:minxr // -----修改数据----------- // 1、在原来基础上修改 jedis.append("name", "jarorwar"); // 很直观,类似map 将jarorwar // append到已经有的value之后 System.out.println(jedis.get("name"));// 执行结果:minxrjarorwar // 2、直接覆盖原来的数据 jedis.set("name", "闵晓荣"); System.out.println(jedis.get("name"));// 执行结果:闵晓荣 // 删除key对应的记录 jedis.del("name"); System.out.println(jedis.get("name"));// 执行结果:null /** * mset相当于 jedis.set("name","minxr"); jedis.set("jarorwar","闵晓荣"); */ jedis.mset("name", "minxr", "jarorwar", "闵晓荣"); System.out.println(jedis.mget("name", "jarorwar")); } /** * jedis操作Map */ // @Test public void testMap() { Map<String, String> user = new HashMap<String, String>(); user.put("name", "minxr"); user.put("pwd", "password"); jedis.hmset("user", user); // 取出user中的name,执行结果:[minxr]-->注意结果是一个泛型的List // 第一个参数是存入redis中map对象的key,后面跟的是放入map中的对象的key,后面的key可以跟多个,是可变参数 List<String> rsmap = jedis.hmget("user", "name"); System.out.println(rsmap); // 删除map中的某个键值 // jedis.hdel("user","pwd"); System.out.println(jedis.hmget("user", "pwd")); // 因为删除了,所以返回的是null System.out.println(jedis.hlen("user")); // 返回key为user的键中存放的值的个数1 System.out.println(jedis.exists("user"));// 是否存在key为user的记录 返回true System.out.println(jedis.hkeys("user"));// 返回map对象中的所有key [pwd, name] System.out.println(jedis.hvals("user"));// 返回map对象中的所有value [minxr, // password] Iterator<String> iter = jedis.hkeys("user").iterator(); while (iter.hasNext()) { String key = iter.next(); System.out.println(key + ":" + jedis.hmget("user", key)); } } /** * jedis操作List */ // @Test public void testList() { // 开始前,先移除所有的内容 jedis.del("java framework"); System.out.println(jedis.lrange("java framework", 0, -1)); // 先向key java framework中存放三条数据 jedis.lpush("java framework", "spring"); jedis.lpush("java framework", "struts"); jedis.lpush("java framework", "hibernate"); // 再取出所有数据jedis.lrange是按范围取出, // 第一个是key,第二个是起始位置,第三个是结束位置,jedis.llen获取长度 -1表示取得所有 System.out.println(jedis.lrange("java framework", 0, -1)); } /** * jedis操作Set */ // @Test public void testSet() { // 添加 jedis.sadd("sname", "minxr"); jedis.sadd("sname", "jarorwar"); jedis.sadd("sname", "闵晓荣"); jedis.sadd("sanme", "noname"); // 移除noname jedis.srem("sname", "noname"); System.out.println(jedis.smembers("sname"));// 获取所有加入的value System.out.println(jedis.sismember("sname", "minxr"));// 判断 minxr // 是否是sname集合的元素 System.out.println(jedis.srandmember("sname")); System.out.println(jedis.scard("sname"));// 返回集合的元素个数 } // @Test public void test() throws InterruptedException { // keys中传入的可以用通配符 System.out.println(jedis.keys("*")); // 返回当前库中所有的key [sose, sanme, name, // jarorwar, foo, sname, java // framework, user, braand] System.out.println(jedis.keys("*name"));// 返回的sname [sname, name] System.out.println(jedis.del("sanmdde"));// 删除key为sanmdde的对象 删除成功返回1 // 删除失败(或者不存在)返回 0 System.out.println(jedis.ttl("sname"));// 返回给定key的有效时间,如果是-1则表示永远有效 jedis.setex("timekey", 10, "min");// 通过此方法,可以指定key的存活(有效时间) 时间为秒 Thread.sleep(5000);// 睡眠5秒后,剩余时间将为<=5 System.out.println(jedis.ttl("timekey")); // 输出结果为5 jedis.setex("timekey", 1, "min"); // 设为1后,下面再看剩余时间就是1了 System.out.println(jedis.ttl("timekey")); // 输出结果为1 System.out.println(jedis.exists("key"));// 检查key是否存在 System.out.println(jedis.rename("timekey", "time")); System.out.println(jedis.get("timekey"));// 因为移除,返回为null System.out.println(jedis.get("time")); // 因为将timekey 重命名为time 所以可以取得值 // min // jedis 排序 // 注意,此处的rpush和lpush是List的操作。是一个双向链表(但从表现来看的) jedis.del("a");// 先清除数据,再加入数据进行测试 jedis.rpush("a", "1"); jedis.lpush("a", "6"); jedis.lpush("a", "3"); jedis.lpush("a", "9"); System.out.println(jedis.lrange("a", 0, -1));// [9, 3, 6, 1] System.out.println(jedis.sort("a")); // [1, 3, 6, 9] //输入排序后结果 System.out.println(jedis.lrange("a", 0, -1)); } @After public void destory() { pool.returnResource(jedis);// 使用完之后将连接返回到连接池中 pool.destroy();// 销毁连接池中的所有连接 } }
发表评论
-
mongodb 地理位置处理
2016-05-16 13:39 1419我只记录我用到的部分,没有完整分析mongodb对地理位置 ... -
Redis配置文件redis.conf
2014-11-14 14:10 1869# Redis configuration file ex ... -
Redis高可用部署及监控
2014-11-12 13:25 1098一、 Re ... -
JCS官方文档的简单笔记,仅供自己参考
2014-09-26 20:08 7791. 基本配置 jcs.default=DCjcs.de ... -
JCS基本配置
2014-09-26 19:39 9431、默认的内存缓存 ... -
NoSQL解决方案比较(MongoDB vs Redis, Tokyo Cabinet, and Berkeley DB)
2013-09-30 14:20 1341NoSQL解决方案比较 NoSQL Solution: E ... -
morphia与spring的整合
2012-12-07 15:06 1484转自: http://www.blogjava.net/wat ... -
Mongo的ORM框架的学习Morphia(十五)Morphia+spring整合
2012-12-07 15:06 1657转自:http://topmanopensource.itey ... -
Mongo的ORM框架的学习Morphia(十二) morphia的Query和Update
2012-12-07 15:06 1875转自:http://topmanopensource.itey ... -
Mongo的ORM框架的学习Morphia(十) morphia应用
2012-12-05 14:47 1462转自:http://topmanopensource.itey ... -
Mongo的ORM框架的学习Morphia(九) morphia简单使用
2012-12-05 14:44 1380转自 http://topmanopensource.itey ... -
Mongo的ORM框架的学习Morphia(八) morphia数据库访问接口
2012-12-05 14:35 2019转自:http://topmanopensource.itey ... -
Mongo的ORM框架的学习Morphia(annotations)
2012-12-05 14:33 2543一:@Entity的使用 @Entity ... -
Instagram的Redis实践(内存占用优化)
2012-11-30 10:43 1201转自:http://blog.nosqlfan.com/htm ... -
SQL 和Mongo 对比图表
2012-11-28 14:54 2209参看官方说明: http://www.mongodb ... -
MongoDB 入门指南、示例
2012-11-23 10:38 854转自:http://www.cnblogs.com/hoojo ... -
mongodb中使用MapReduce
2012-11-23 10:12 1213MapReduce函数的用法如下: db.users.ma ... -
python的redis用法
2012-11-22 15:48 1170#! /usr/bin/env python #coding ... -
Python连接redis
2012-11-22 15:46 5621一、Redis是流行的NOSQL内存数据库,以Key-Valu ... -
【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】
2012-08-29 10:42 1376转自 http://www.bwkeji.com/a/wang ...
相关推荐
本文将深入探讨如何使用Java操作Redis的四种主要数据类型:字符串(String)、列表(List)、哈希(Hash)和集合(Set)。 首先,我们来看**字符串类型**(String)。在Redis中,字符串是最基础的数据类型,可以...
它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,使得数据操作非常便捷。Jedis作为Redis的Java客户端,提供了丰富的API来访问和操作这些数据结构。 在实际使用中,开发者会将这些jar包添加到项目的类...
其次,Jedis提供了多种数据类型的操作方法,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。以字符串操作为例,`set`方法用于设置键值对,源码中会调用`sendCommand`发送`SET`命令,...
Jedis 提供了丰富的 API,使得开发者可以轻松地在 Java 应用程序中实现对 Redis 的各种操作,如字符串、哈希、列表、集合、有序集合等数据类型的操作。 **一、Jedis 安装与配置** 要使用 Jedis,首先需要将其添加到...
总结,Jedis作为Java连接Redis的重要工具,提供了连接池管理、多种数据类型操作以及事务处理等功能,极大地简化了与Redis的交互。理解并熟练运用这些特性,能够帮助开发者更高效地利用Redis进行数据存储和处理。
Jedis支持多种数据类型操作,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。此外,还支持发布/订阅、事务、脚本(Scripting)以及地理空间操作。 2. 连接池概念: 连接...
6. **其他操作**:Jedis还提供了对字符串、哈希表、列表、集合、有序集合等多种数据类型的CRUD操作,以及发布订阅、管道等高级功能。 **六、源码学习与调试** 有了`jedis-3.0.0-sources.jar`,开发者可以利用IDE的...
Jedis支持多种Redis操作,包括字符串、哈希、列表、集合、有序集合等数据类型。例如,你可以使用Jedis的`set()`方法来设置键值对,`get()`方法获取键对应的值,`lpush()`和`rpop()`用于处理列表数据结构。Jedis还...
字符串是最基本的数据类型,可以用来存储单个值。例如,上面的代码展示了如何设置一个键值对。要获取这个值,可以使用`get`方法: ```java String value = jedis.get("key"); ``` 哈希则适合存储键值对的集合,...
Jedis支持各种Redis命令,包括数据类型操作、事务处理、发布/订阅、持久化等。在实际项目中,通过Jedis,开发者可以实现数据缓存、分布式锁、消息传递等功能。 为了使用Jedis,首先需要将其添加到项目依赖中,例如...
它提供了丰富的数据类型,如字符串、哈希、列表、集合和有序集合,适合用于缓存、消息中间件、数据库等多种场景。Redis通过网络协议提供服务,支持多种编程语言的客户端,Jedis就是其中针对Java开发的客户端。 **...
3. **数据类型操作**:对Redis中的字符串、哈希、列表、集合和有序集合进行操作的类和方法。 4. **错误处理**:处理网络异常、Redis服务器返回的错误等。 ### 使用Jedis进行Redis操作 以下是一些基本操作示例: 1....
Jedis支持多种数据类型,包括字符串、哈希、列表、集合、有序集合等,同时也支持事务、发布订阅、Lua脚本等高级功能。在Java应用中,使用Jedis可以方便地实现缓存、消息队列、分布式锁等功能,极大地提高了开发效率...
5. 丰富的数据类型操作:Jedis支持Redis的所有基本数据类型,如字符串、列表、集合、哈希表以及有序集合,同时也支持更复杂的数据结构,如HyperLogLog、Geo、Stream等。 6. 支持Redis Sentinel和Cluster:Jedis不仅...
首先,Redis是一个开源的内存数据结构存储系统,它支持多种数据类型,如字符串、哈希、列表、集合和有序集合。这些数据结构使得Redis在处理复杂的数据操作时表现优秀,例如计数、发布订阅、事务处理等。同时,Redis...
使用这个工具类,你可以快速实现Redis的增删改查操作,支持多种数据类型,大大提高了开发效率。 总之,`JAVA整合JEDIS操作访问Redis的工具类`通过Jedis库实现了与Redis服务器的交互,并通过`CacheUtils`工具类...
Jedis是Java开发的一款高效的Redis客户端库,广泛用于与Redis服务器进行交互,提供丰富的数据类型操作支持。在Redis中,我们可以存储字符串、哈希表、列表、集合和有序集合等多种数据结构。Jedis 2.1是其较早的一个...
同时,Jedis 还支持其他数据类型如哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)的操作,通过类似的方式进行操作。为了确保高并发下的数据一致性,Jedis 提供了事务(Transaction)功能,可以将...
Redis是一种开源的高性能键值存储数据库,支持多种类型的数据结构,包括字符串、哈希表、列表、集合、有序集合等。它广泛应用于缓存、消息队列、计数器和实时分析等多种场景。在Java应用程序中,常用的操作Redis的...