go-redis/redis v8怎么保存数组结构

代码如下:

//@function: GetMenuTree
//@description: 获取动态菜单树
//@param: roleId string
//@return: err error, menus []model.SysRoleMenu
func GetMenuTree(roleId string) (err error, menus []model.SysRoleMenu) {
    err, menuTree := GetMenuTreeMap(roleId)
    menus = menuTree["0"]
    for i := 0; i < len(menus); i++ {
        err = GetChildrenList(&menus[i], menuTree)
    }
    if err := global.GVA_REDIS.Set(context.Background(), roleId, menus, 0).Err(); err != nil {
        global.GVA_LOG.Error("保存redis失败!", zap.Error(err))
    }
    return err, menus
}

获取到树结构数据,并保存到redis,但是直接set是不行的,会报错的,是否需要转换?

阅读 3.2k
1 个回答

你需要转换成string,go-redis的值只支持string.你可以json后转成string存起来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题