redis(一)——使用

本文介绍使用Shiro进行权限管理时如何利用Redis存储用户权限信息。具体实践包括查询并缓存用户的所有权限标识,使用Jedis操作Redis,并探讨了Redis内部数据结构redisObject的组成。
摘要由CSDN通过智能技术生成

一、版本

    redis版本:3.2.8
    jedis版本:2.9.0/2.7.2

二、项目使用

1、使用场景

    用shiro做授权的时候,在用户登录之后,查询该用户可以访问的所有的资源的权限标识,将权限标识放到redis中进行存储。

2、redis存储
   List<String> roleIds = applicationDao.queryRoleIds();
        for (String id : roleIds) {
            List<String> permissionList = applicationDao.queryPermissionsByRoleId(id);
            String strPermissions = JacksonJsonUntil.objectToJson(permissionList);
            flag= JedisCacheUtil.set("aum" + ":" + "Permissions" + ":" + schoolNo + ":" + id, strPermissions);
   }

     在redis中存放string类型

三、redis数据类型

1、redisObject

     redis内部使用redisObject对象来表示所有的key和value,redis是使用C编写的,内部实现了一个struct结构体redisObject对象
/*
 * Redis 对象
 */
typedef struct redisObject {
    // 类型
    unsigned type:4;
    // 对齐位
    unsigned notused:2;
    // 编码方式
    unsigned encoding:4;
    // LRU 时间(相对于 server.lruclock)
    unsigned lru:22;
    // 引用计数
    int refcount;
    // 指向对象的值
    void *ptr;
} robj;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值