开发者社区> 问答> 正文

Redis存储用户中心会话数据的问题

设计一个用户中心系统,考虑到会话票据经常读取,想用Redis来存储,目前有两种想法:

Jedis jedis = new Jedis("localhost"); 
//方案一
HashMap<String,String> userInfo = new HashMap<String,String>();
userInfo.put("uid", "123456");
userInfo.put("user", "MyUserName");
userInfo.put("nick", "MyNickName");
jedis.hmset("TICKET-ABCDEFG", userInfo); 
//方案二
jedis.set("TICKET-ABCDEFG:uid", "123456");
jedis.set("TICKET-ABCDEFG:user", "MyUserName");
jedis.set("TICKET-ABCDEFG:nick", "MyNickName"); 

请各位大大指点。谢谢啦。

展开
收起
落地花开啦 2016-02-06 15:09:36 2635 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    各有优缺点
    方案二可以只按get("TICKET-ABCDEFG:xxx") 读取一条,如果只需要修改其中的一条属性也可以set("TICKET-ABCDEFG:xxx") 操作简单,读取数据量小,但是要TICKET-ABCDEFG下的所有属性值,就需要操作多次,如果属性比较多的时候,操作的次数相应增加,并发性能对应下降,这就是这种方式的缺点;
    方案一hmget("TICKET-ABCDEFG")就可以把TICKET-ABCDEFG的所有属性取到一个HashMap中,读取整个属性信息相对方案二较快,但是如修改其中一个值,从新hmset回去的时候要把整个HashMap重新set回去,这就是第一种方式的缺点;
    你可以做个测试试一下

    2019-07-17 18:38:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Redis集群演化的心路历程——从2.x到3.0时代 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载