`
zy116494718
  • 浏览: 476716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Redis相关

阅读更多

1)常用方法

     addZSet(String key, double score, String value)  向set中添加数据,score为权重,表示按照该值排序

     Set<String> getZSet(String key, int start, int end) 向set中取数据

     delZSet(String key, String member) 向set中删除数据,member只能是String,不能是json数据

     delZSetByScore(String key,double start,double end) 通过权重删除ZSet中的数据,start=end时表示删除权重为多少的数据

      如果addZSet方法添加的value是一个json数据的话,那么使用delZSet的话不行,要用delZSetByScore.


2)  假如有如下页面:

 

  

 

      前台需要的是按时间排序好的数据,这样就不能只把json数据从redis中取出传到前台了。

      这里想到的方法是插入一条数据时在redis中存入map数据,map的值为日期,value为json数据。

      如下:

 

      

                Date date = sign.getInsertTime();
		SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
		String signDate = s.format(date);
		Map map = new HashMap();
		
		
		if (RedisUtil.getString("sign_" + sign.getUserName()) != null) {  //如果该用户在redis中有数据的话
			map = JsonUtil.getMapFromJson(RedisUtil.getString("sign_"
					+ sign.getUserName()));   //取出该用户的map(日期,json数据)的值

			JSONArray json = JSONArray.parseArray(JSONArray.toJSONString(map.get(signDate))); //signDate表示该条签名的发表日期,这里是要看该map中是否已经有该日期了,但是其实
                                                                                              //有没有的结果都是要把sign对象插入到json中去
			json.add(sign);
			map.put(signDate, json);  //如果之前map中有该日期了,则重新给该日期赋值,如果没有则直接赋值


		} else {
		    map.put(signDate, JSONArray.toJSON(sign));//把sign对象赋值给该日期
		}

		RedisUtil.addString("sign_" + sign.getUserName(), JSONObject
				.toJSON(map).toString());

 

    当删除一条数据时,如下:

   

Map map = new HashMap();
			Date date = sign.getInsertTime();
			SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
			String signDate = s.format(date);

			if (RedisUtil.getString("sign_" + sign.getUserName()) != null) {
				map = JsonUtil.getMapFromJson(RedisUtil.getString("sign_"
						+ sign.getUserName()));

				JSONArray json = JSONArray.parseArray(JSONArray.toJSONString(map.get(signDate)));
				List list = JsonUtil.getDTOList(json.toString(), SpaceSign.class);  //json转换成list
				for(int i=0;i<list.size();i++){
					SpaceSign spaceSign = (SpaceSign)list.get(i);
					if(spaceSign.getId()==signId){
						list.remove(i);//删除该对象
					}
				}
				json = JSONArray.parseArray(JSONArray.toJSONString(list)); //重新生成json对象
				
				if(!json.isEmpty()){
				  map.put(signDate, json);  //如果删除该对象后该日期依然有json数据,那么重新给该日期赋值
				}
				else{
				  map.remove(signDate);  //如果删除该对象后该日期已无json数据,那么直接从map中删除该日期
				}
			}
			RedisUtil.addString("sign_" + sign.getUserName(), JSONObject
					.toJSONString(map));

 

  • 大小: 96.2 KB
0
0
分享到:
评论

相关推荐

    redis相关安装包.zip

    1. 解压下载的"redis相关安装包.zip",获取Redis 5.0的源代码。 2. 进入解压后的目录,运行`make`命令编译源码。 3. 编译完成后,执行`make install`将Redis服务器及客户端工具安装到系统路径。 安装完成后,配置...

    Spring3.0整合redis相关jar

    "Spring3.0整合redis相关jar"这个主题主要涉及的是如何在Spring 3.0版本中集成Redis作为数据存储或缓存解决方案。Spring 3.0虽然相对较老,但在当时是广泛使用的版本,因此了解其与Redis的集成方式对维护旧项目或...

    redis相关工具.rar

    这个名为"redis相关工具.rar"的压缩包文件包含了在Linux环境下安装和使用Redis所需的一些关键组件。以下是对这些组件的详细介绍: 1. **Redis安装包**:这是Redis服务器的二进制文件,通常以tar.gz格式提供。安装时...

    redis相关jar包

    在Java环境下使用Redis,需要依赖相关的Java库,本压缩包提供了两个关键的jar包:`commons-pool-1.5.4.jar`和`jedis-2.4.2.jar`。 `commons-pool-1.5.4.jar`是Apache Commons Pool库的一个版本,它是一个通用的对象...

    Redis相关学习资料

    以下是对Redis相关知识点的详细解释: 1. **Redis的基本概念** - **键(Key)**:Redis中的数据是以键值对的形式存在的,键是唯一的标识符。 - **值(Value)**:值可以是字符串、列表、集合、哈希表或有序集合等...

    Redis相关javajar包

    Redis是一种高性能的键值对NoSQL数据库,常用于缓存和数据持久化。在Java开发中,我们通常使用Jedis库来与Redis进行交互。Jedis是Java的一个轻量级Redis客户端,它提供了丰富的API来操作Redis服务器。 首先,我们要...

    redis相关资料参考

    Redis,全称Remote Dictionary Server,是一款高性能的键值存储系统,由Salvatore Sanfilippo创建,最初是为了解决Memcached在某些场景下的性能问题而设计的。它支持多种数据结构,如字符串、哈希表、列表、集合、...

    Redis相关PDF文档

    Redis? What is it? ,redis是一个key-value存储系统;Redis 是一个高性能的key-value数据库;Redis支持主从同步。想要学习,这里有你想要的书籍。文件包含:redis设计与实现(第二版) Redis新手入门详解 redis中文...

    Redis相关资料.rar_redis

    这个压缩包“Redis相关资料.rar_redis”包含了学习和理解Redis所需的关键资源。 首先,我们来看“Redis中文入门手册.pdf”。这本书籍通常会包含Redis的基础概念,如它的数据结构(如字符串、哈希、列表、集合、有序...

    cpp-Redis相关文章每日精选

    Redis是一种高性能的键值对数据存储系统,常用于构建实时应用、缓存系统以及数据库解决方案。...每天阅读Redis相关的文章,可以帮助开发者保持对最新特性和最佳实践的了解,优化他们的系统设计和代码实现。

    redis相关jar包.rar_rabbit1cc_redis_redis jar_redis jar包_redis.jar

    在给定的`redis相关jar包.rar`中,包含的`redis.jar`文件是用于Java编程的Redis客户端库。这个库提供了丰富的API,开发者可以使用这些API来执行包括但不限于以下操作: 1. 连接与断开:`Jedis`类提供了连接Redis...

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

    Redis是一款高性能的键值对数据库,常用于缓存和数据持久化。在Java开发中,我们通常使用Jedis作为客户端库来与Redis进行交互。本文将深入探讨Redis、Jedis以及Spring Data Redis这三个核心概念,并结合提供的jar包...

    redis相关配置文件

    这个压缩包文件包含了与Redis相关的配置文件,这对于我们理解并优化Redis的运行至关重要。以下将详细介绍Redis配置文件中的重要参数及其作用。 Redis的配置文件通常命名为`redis.conf`,它是通过一系列指令来定义...

    Redis相关技术总结

    ### Redis相关技术总结 #### 一、背景与需求分析 随着互联网技术和大数据的快速发展,传统的关系型数据库在处理大规模并发请求以及海量数据时逐渐显露出局限性。为了解决这些问题,许多非关系型数据库(NoSQL)...

    redis有关学习总结

    Redis 是一个高性能的键值数据库,常被用作数据结构服务器,因为它提供了丰富的数据类型,包括字符串(string)、列表(list)、集合(set)、有序集合(sorted set)和哈希(hash)。这些数据类型支持多种原子性操作,例如在...

    Redis相关资料

    Redis是一种开源的、高性能的键值对数据存储系统,它被广泛应用于缓存、数据库、消息中间件等多种场景。作为一款非关系型数据库,Redis以其出色的速度和丰富的数据结构赢得了开发者们的青睐。与Memcached相比,Redis...

    Windows下Redis相关安装程序打包

    Windows下Redis相关安装程序打包, bin目录包含了Redis相关的执行程序,ReadMe.txt包含了基本的服务创建,卸载,启动,停止等操作命令

    Redis相关资料.zip

    这个"Redis相关资料.zip"压缩包包含了Redis在不同操作系统上的安装包,以及相关的学习资源,非常适合初学者和需要深入理解Jedis库的开发者。 首先,让我们详细探讨Redis的安装。在Linux环境下,Redis通常通过源码...

    免费Redis相关软件安装包(Windows)

    2. 解压文件:将下载的压缩包"Redis相关软件安装包"解压到任意目录,例如"C:\Redis"。 3. 运行Redis服务:解压后,你会看到一个名为"redis-server.exe"的可执行文件,这是Redis服务器。双击运行此文件,Redis服务就...

    redis相关学习笔记

    redis相关学习笔记

Global site tag (gtag.js) - Google Analytics