`
nannan408
  • 浏览: 1792799 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

redis等缓存,如何定义key确保唯一?

 
阅读更多
1.前言。
  对于存储不同的值,可能会用md5,但md5效率不高,8000字可能要花16毫秒。而hashcode则是0,如果直接用hashcode生成不一样的值,那么就可以做为主键了。
2.代码。
	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		  int hash = 1;
		    hash = hash * 31 + name.hashCode();
		    hash = hash * 31 
		                + (password== null ? 0 : password.hashCode());
		    return hash;	
    }


0
0
分享到:
评论
4 楼 nannan408 2013-11-30  
nannan408 写道
finallygo 写道
hashcode不是会重复?

数字操作可能会有重复,所以尽量不要单独加数字,但是字符串是绝对不会重复的,可以去看jdk关于char的hashcode源码。

仔细又想了一下,还是有可能重复的,比如int类型超过了相加溢出。有一种魔兽暴雪的算法,说用三重hashtable可以实现不重复。  
  最后我还是换成md5.特此修正。
3 楼 nannan408 2013-11-25  
finallygo 写道
hashcode不是会重复?

数字操作可能会有重复,所以尽量不要单独加数字,但是字符串是绝对不会重复的,可以去看jdk关于char的hashcode源码。
2 楼 nkadun 2013-11-23  
加个前缀不就唯一了?
1 楼 finallygo 2013-11-23  
hashcode不是会重复?

相关推荐

    redis本地缓存与redis缓存

    相反,Redis缓存是基于远程的Key-Value数据库,它将数据存储在独立的服务器上,可以为多个应用实例提供共享的、持久化的缓存服务。Redis支持丰富的数据结构(如字符串、哈希、列表、集合、有序集合)以及事务、发布/...

    Redis缓存及热点key问题解决方案

    Redis缓存及热点key问题解决方案 Redis缓存是一种高效的缓存解决方案,用于加速应用程序的访问速度和降低数据库的负载。但是,Redis缓存也存在一些问题,例如热点key的问题。如果不妥善处理,可能会导致系统崩溃。...

    redis-缓存文档

    ### Redis缓存技术详解 #### 一、Redis简介与缓存概念 Redis是一种高性能的开源键值存储系统,常被用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串(strings)、散列(hashes)、列表(lists)、集合...

    redis分布式缓存中间件培训PPT

    Redis分布式缓存中间件培训PPT Redis是完全开源免费的高性能key-value数据库,可以满足高可用、高并发的要求。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。同时,...

    redis页面缓存html使用redis实现页面缓存.docx

    缓存实现代码:在缓存实现中,我们使用了 Jedis 连接 Redis 服务器,并使用了 zadd、zremrangeByRank、zincrby 等方法来操作缓存。缓存的实现思路是首先判断某个 URL 是否可以缓存,然后根据缓存的结果来判断是否...

    基于redis的缓存框架

    对比Spring Cache,自定义的Redis缓存框架可能更专注于Redis特性的利用,例如使用Sorted Set进行范围查询,或者使用Hashes存储复杂对象,从而提高数据访问效率。此外,自定义框架可以根据项目需求进行更精细化的定制...

    mybatis+redis缓存配置

    ### MyBatis与Redis缓存配置详解 #### 一、MyBatis缓存机制概述 在MyBatis中,缓存是一项重要的性能优化措施。它能够显著减少数据库的访问次数,提高应用程序的响应速度。MyBatis提供了两种级别的缓存支持:一级...

    Redis用作二级缓存

    4. 定义Mapper缓存:在每个Mapper接口或XML配置文件中,启用二级缓存并指定对应的缓存namespace,这是区分不同Mapper的缓存key。 ```xml <!-- 其他查询和更新语句 --> ``` 5. 实现缓存拦截器:创建自定义的...

    SpringBoot项目 MybatisPlus使用 Redis缓存.zip

    本项目中,我们看到“SpringBoot项目 MybatisPlus使用 Redis缓存.zip”主要涉及了SpringBoot、MybatisPlus和Redis三个核心组件,它们在实际开发中扮演着重要角色。 首先,SpringBoot是Spring框架的一种简化版,它...

    c#使用Redis缓存

    本文将深入探讨如何在C#应用中使用Redis缓存,以提高系统性能和响应速度。 首先,要使用Redis与C#进行交互,我们需要一个客户端库。StackExchange.Redis是.NET社区广泛推荐的Redis客户端,它提供了丰富的API用于...

    什么是redis缓存穿透 雪崩 ,如何应对解决 redis缓存穿透 雪崩 的解决办法

    缓存穿透是指用户请求的数据既不在Redis缓存中,也不在数据库中,导致每次请求都需要去数据库查询。这可能由于恶意用户反复请求不存在的数据,或者系统设计缺陷引起。解决缓存穿透的方法有以下几点: 1. **布隆过滤...

    memcache&redis构建缓存服务器.pdf

    在构建缓存服务器的过程中,Memcached和Redis是两个重要的高性能分布式内存缓存系统,它们的使用可以显著提升Web应用的响应速度和扩展性。以下是详细介绍这两个系统的知识内容。 首先,RDBMS(关系型数据库管理系统...

    redis缓存的示例代码

    1. **Redis缓存的优势** - 高性能:Redis是基于内存的数据结构存储系统,读写速度非常快。 - 支持多种数据结构:如字符串、哈希、列表、集合、有序集合等。 - 支持持久化:通过RDB或AOF方式保存数据到磁盘,防止...

    redis命令缓存AOP代码

    Redis是一款高性能的键值对数据库,常用于缓存和消息队列等场景。在Java开发中,通过Spring框架可以方便地集成Redis,并利用AOP(面向切面编程)实现命令缓存,提升应用性能。本项目包含HashMap、List、Set、...

    spring整合redis做缓存用注解实现的完整例子

    Redis是一种高性能的键值数据存储系统,常被用于缓存、消息队列等多种场景,而Spring框架则为Java开发者提供了强大的依赖注入和面向切面编程功能,使得整合Redis变得轻松便捷。 首先,我们需要在项目中引入Spring ...

    使用.Net 技术操作Redis缓存技术,对Redis缓存进行存储增删改查等相关操作

    Redis是一种高性能的键值数据库,常用于数据缓存、消息队列、主从复制等多种场景。在.NET开发环境中,我们通常使用StackExchange.Redis库来与Redis进行交互。本篇文章将详细探讨如何使用.NET技术,尤其是C#语言,来...

    PHP+Redis 实例 页面缓存

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal...

    Redis面试专题.pdf

    1.redis 和 memcached 什么...13.假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来? 14.使用 Redis 做过异步队列吗,是如何实现的 15.Redis 如何实现延时队列

    redis的缓存失效策略和主键失效机制【java面试常问】.docx

    #### 二、Redis缓存失效策略概述 Redis中的缓存失效策略是指当内存不足时,如何选择并删除部分缓存数据以释放空间。为了确保系统的稳定运行,合理设置缓存失效策略是非常重要的。 ##### 1. 影响生存时间的操作 - **...

    35.[视频] Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】

    可以通过指定`value`属性来定义缓存区域,`key`属性用于生成唯一的缓存键。 - **@CacheEvict**:用于清除缓存。可以指定要清除的缓存区域,以及根据什么条件(key或condition)清除缓存。 - **@CachePut**:当需要...

Global site tag (gtag.js) - Google Analytics