之前介绍了Jedis的基本操作,连接池的支持,以及和Spring的整合。接下来的内容,继续Jedis的最为常见的操作。主要包括常用的列表(list)、集合(set)、有序集合(sorted set)、哈希表(hash)等数据结构,以及其他特性支持。
<一>. 使用list:
可以使用列表模拟队列(queue)、堆栈(stack),并且支持双向的操作(L或者R)。
1. 右边入队:
jedis.rpush("userList", "James");
2. 左边出队:右边出栈(rpop),即为对堆栈的操作。
jedis.lpop("userList");
3. 返回列表范围:从0开始,到最后一个(-1) [包含]
List<String> userList = jedis.lrange("userList", 0, -1);
Redis的TopN操作,即使用list完成:lrange
4. 删除:使用key
jedis.del("userList");
5. 设置:位置1处为新值
jedis.lset("userList", 1, "Nick Xu");
6. 返回长度:
Long size = jedis.llen("userList");
7. 进行裁剪:包含
jedis.ltrim("userList", 1, 2);
<二>. 使用set:和列表不同,集合中的元素是无序的,因此元素也不能重复。
1. 添加到set:可一次添加多个
jedis.sadd("fruit", "apple"); jedis.sadd("fruit", "pear", "watermelon"); jedis.sadd("fruit", "apple");
2. 遍历集合:
Set<String> fruit = jedis.smembers("fruit");
3. 移除元素:remove
jedis.srem("fruit", "pear");
4. 返回长度:
Long size = jedis.scard("fruit");
5. 是否包含:
Boolean isMember = jedis.sismember("fruit", "pear");
6. 集合的操作:包括集合的交运算(sinter)、差集(sdiff)、并集(sunion)
jedis.sadd("food", "bread", "milk"); Set<String> fruitFood = jedis.sunion("fruit", "food");
<三>. 使用sorted set:有序集合在集合的基础上,增加了一个用于排序的参数。
1. 有序集合:根据“第二个参数”进行排序。
jedis.zadd("user", 22, "James");
2. 再次添加:元素相同时,更新为当前的权重。
jedis.zadd("user", 24, "James");
3. zset的范围:找到从0到-1的所有元素。
Set<String> user = jedis.zrange("user", 0, -1);
4. 说明:我们可能还有一个疑虑,集合是怎么做到有序的呢?
实际上,上述user的数据类型为java.util.LinkedHashSet
<四>. 使用hash:
1. 存放数据:使用HashMap
Map<String, String> capital = new HashMap<String, String>(); capital.put("shannxi", "xi'an"); ... jedis.hmset("capital", capital);
2. 获取数据:
List<String> cities = jedis.hmget("capital", "shannxi", "shanghai");
<五>. 其他操作:
1. 对key的操作:
@ 对key的模糊查询:
Set<String> keys = jedis.keys("*"); Set<String> keys = jedis.keys("user.userid.*");
@ 删除key:
jedis.del("city");
@ 是否存在:
Boolean isExists = jedis.exists("user.userid.14101");
2. 失效时间:
@ expire:时间为5s
jedis.setex("user.userid.14101", 5, "James");
@ 存活时间(ttl):time to live
Long seconds = jedis.ttl("user.userid.14101");
@ 去掉key的expire设置:不再有失效时间
jedis.persist("user.userid.14101");
3. 自增的整型:
@ int类型采用string类型的方式存储:
jedis.set("amount", 100 + "");
@ 递增或递减:incr()/decr()
jedis.incr("amount");
@ 增加或减少:incrBy()/decrBy()
jedis.incrBy("amount", 20);
4. 数据清空:
@ 清空当前db:
jedis.flushDB();
@ 清空所有db:
jedis.flushAll();
5. 事务支持:
@ 获取事务:
Transaction tx = jedis.multi();
@ 批量操作:tx采用和jedis一致的API接口
for(int i = 0;i < 10;i ++) { tx.set("key" + i, "value" + i); System.out.println("--------key" + i); Thread.sleep(1000); }
@ 执行事务:针对每一个操作,返回其执行的结果,成功即为Ok
List<Object> results = tx.exec();
相关推荐
以上是 Redis 入门的基本知识点,深入学习 Redis 还需实践操作和理解其内部机制。通过阅读《REDIS 入门指南》这本书籍,你将能更全面地了解 Redis 的功能和应用场景,为你的程序员进阶之路添砖加瓦。
### Redis入门及Jedis应用详解 #### 一、Redis简介 Redis是一款开源、高性能的键-值存储数据库,它能够实现分布式内存存储并提供可选的持久化功能。这款数据库最初由Salvatore Sanfilippo开发,目前由Redis实验室...
Redis快速入门 ppt 介绍了 Redis 的基础知识,包括 NoSQL 的概念、Redis 的安装、Redis 的常见命令、Redis 的 Java 客户端等。 认识 NoSQL NoSQL 是一种非关系型数据库,它不同于传统的关系型数据库(RDBMS)。...
### Redis入门与实践 #### 一、Redis简介与NoSQL概念 Redis是一种广泛使用的开源内存数据结构存储系统,它可以作为数据库、缓存和消息中间件使用。作为一种NoSQL(Not Only SQL)数据库,Redis提供了键值对存储...
Spring 和 Redis 的集成是现代 Java 应用程序中常见的数据存储解决方案,特别是在处理高并发、低延迟的数据访问需求时。本教程将引导你通过一个入门级的 Demo,了解如何在 Spring 框架中配置并使用 Redis。 首先,...
Jedis是更常见的一种选择,它提供了丰富的API来操作Redis服务器。首先,你需要在项目中引入Jedis的依赖,然后配置Redis服务器的连接参数,如主机名、端口号、密码等。以下是一个简单的Jedis连接示例: ```java ...
Redis从入门到高可用 分布式实战教程,共140多节课程、 掌握redis主从、哨兵、集群 ,参数调优 目录: 9-9 原生安装-1.准备节点.mp4 9-8 原生安装.mp4 9-7 基本架构.mp4 9-6 虚拟槽哈希分布.mp4 9-5 一致性...
在本教程中,我们将深入探讨如何使用Redis进行优惠券秒杀场景的实战,这是一个常见的高并发挑战,尤其在电商行业中。Redis作为一个高性能的键值存储系统,常被用于处理这类实时、高流量的需求。我们将主要关注以下几...
总的来说,Redis新手入门需要掌握的基本内容包括:Redis的安装与启动、基本数据类型和操作命令、Java客户端的使用、数据持久化与高可用性策略,以及性能优化技巧。通过深入学习和实践,你将能够熟练地在实际项目中...
Redis入门部分介绍了Redis五大基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Zset(有序集合),以及三种特殊数据类型:Geo(地理位置)、HyperLogLog(基数统计)、Bitmap(位图)。...
- **书籍**:《Redis in Action》是一本非常受欢迎的Redis入门书籍。 - **社区论坛**:加入Redis社区论坛,与其他Redis开发者交流心得。 通过上述介绍,我们不仅了解了Redis的基本概念、应用场景以及相关的工具包...
入门实例通常包含如何启动Redis服务器、如何使用命令行客户端`redis-cli`进行基本操作,以及如何在Java应用中使用Jedis连接和操作Redis。这些实例帮助初学者快速理解Redis的基本用法和常见应用场景。 6. **Redis...
SSM(Spring、SpringMVC、MyBatis)与Redis的整合是现代Java Web开发中的常见实践,这个入门案例提供了一个全面了解这一整合过程的基础平台。在这个案例中,你将学习到如何在SSM框架中集成Redis,实现数据缓存,提高...
JedisCluster基本使用.mp4,Redis Cluster常见开发运维问题-目录.mp4,缓存的受益和成本.mp4,缓存的更新策略.mp4
本系列课程从redis基础到高级,老师手把手教你搭建高可用集群,解决redis集群常见问题,思路清晰,旨在挑战高薪。 课程亮点: 1、入门门槛低,零基础也能听懂; 2、课程体系完整全面,从指令到api操作,...
3. **模板和便捷类**:提供`RedisTemplate`和一系列便捷类,如`StringRedisTemplate`等,用于处理常见的数据类型和操作。 4. **事务和脚本支持**:支持Redis的事务机制和Lua脚本功能,增强了数据的一致性和复杂操作...
限8.2.2 内存碎片8.2.3 内存回收策略8.3 ...最后,介绍了Redis集群的构建、操作和常见问题,以及如何进行安全设置和监控。 通过此书,读者将能全面了解Redis的基础知识和实践技巧,为开发和运维工作打下坚实基础。
以上提供的示例代码展示了如何通过Jedis客户端操作Redis中的字符串、散列和列表等数据类型。这些示例覆盖了基本的数据操作流程,如连接Redis服务器、执行读写操作以及获取结果等。 ##### 3. 命令参考 除了上述提到...
### Redis基础使用与知识点详解 #### 一、Redis服务启动与管理 ...以上是对Redis的基础使用以及常见操作命令的总结,希望能够帮助到初学者快速入门Redis,并能够熟练地使用它来进行数据管理和操作。
其中包括了Javanosql讲解、阿里巴巴架构演进、nosql数据模型、Nosql四大分类(CAP、BASE)、Redis入门五大基本数据类型(String、List、Set、Hash、Zset)、三种特殊数据类型(geohash、hyperloglog、bitmap)、...