`
zy116494718
  • 浏览: 473218 次
  • 性别: 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服务器及客户端工具安装到系统路径。 安装完成后,配置...

    redis相关内容redis相关内容redis相关内容redis相关内容redis相关内容redis相关内容

    标题中反复提到“redis相关内容”,这可能是指一系列关于Redis的学习资料或者教程,涵盖了Redis的基本概念、安装配置、操作命令、实际应用以及优化策略等内容。 描述中同样重复了“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 是一个高性能的键值数据库,常被用作数据结构服务器,因为它提供了丰富的数据类型,包括字符串(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