go-redis 基于beego正确使用序列化存储数据和反序列化获取数据
安装go-redis
// 安装命令
go get github.com/gomodule/redigo/redis
// 导入使用
import(
"github.com/gomodule/redigo/redis"
)
// go操作redis文档
https://godoc.org/github.com/gomodule/redigo/redis
序列化存储数据和反序列化获取数据
var aType []models.ArticleType
// redis 在就获取,不再就存储
// conn, err := redis.Dial("tcp", ":6379")
// if err != nil {
// beego.Info("redis连接失败")
// }
// defer conn.Close()
// reply, err := conn.Do("set", "atype", aType)
// if err != nil {
// beego.Info("redis存储失败")
// }
// beego.Info(reply) // 序列化与发序列化
conn, err := redis.Dial("tcp", ":6379")
if err != nil {
beego.Info("redis连接失败")
}
defer conn.Close()
ok, _ := redis.Bool(conn.Do("EXISTS", "atype"))
beego.Info(ok)
if ok == true {
ReadBuffer, _ := redis.Bytes(conn.Do("get", "atype"))
beego.Info(ReadBuffer)
dec := gob.NewDecoder(bytes.NewReader(ReadBuffer))
err = dec.Decode(&aType)
if err != nil {
beego.Info("获取不到解码后的数据:", err)
}
beego.Info(aType)
} else {
// 查询
o.QueryTable("ArticleType").All(&aType) // redis存储序列化的数据
var buffer bytes.Buffer
enc := gob.NewEncoder(&buffer)
err = enc.Encode(aType)
reply, err := conn.Do("set", "atype", buffer.Bytes())
if err != nil {
beego.Info("redis存储失败")
}
beego.Info(reply)
}
go-redis 基于beego正确使用序列化存储数据和反序列化获取数据的更多相关文章
- [转]jquery getJSON 数据联动(采用序列化和反序列化获取数据) .
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...
- python redis存入字典序列化存储
在python中通过redis hset存储字典时,必须主动把字典通过json.dumps()序列化为字符串后再存储, 不然hget获取后将无法通过json.loads()反序列化为字典 序列化存储 ...
- Redis序列化存储Java集合List等自定义类型
在"Redis学习总结和相关资料"http://blog.csdn.net/fansunion/article/details/49278209 这篇文章中,对Redis做了总体的 ...
- Ping CAP CTO、Codis作者谈redis分布式解决方案和分布式KV存储
此文根据[QCON高可用架构群]分享内容,由群内[编辑组]志愿整理,转发请注明出处. 苏东旭,Ping CAP CTO,Codis作者 开源项目Codis的co-author黄东旭,之前在豌豆荚从事i ...
- 解锁redis锁的正确姿势
解锁redis锁的正确姿势 redis是php的好朋友,在php写业务过程中,有时候会使用到锁的概念,同时只能有一个人可以操作某个行为.这个时候我们就要用到锁.锁的方式有好几种,php不能在内存中用锁 ...
- 对象的序列化存储:Serializable 和 Parceable
在进行Android开发的时候我们有时候需要用到数据的持久化存储,或者在进程之间传递数据.其中就可能需要用到对象的序列化,经过序列化的对象之后可以通过Intent或者Boundle来传输了.接下来还是 ...
- Redis基于客户端分片的集群案例(待实践)
说明: 下面的示例基本都是基于Linux去实现,目的是为了环境的统一,以便于把性能调整到最优.且基于Java.建议生产环境不要使用Windows/Mac OS这些. 在Java领域,基于客户端进行分片 ...
- 一个Redis实例适合存储不同应用程序的数据吗?
Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念. Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据 ...
- 一个基于 Beego 的,能快速创建个人博客,cms 的系统
学习beego时候开发的一个博客系统,在持续完善,有不足之处,望大佬们多多体谅,并且指出.感谢! Go Blog 一个基于Beego的,能快速创建个人博客,cms 的系统 包含功能 查看 Go Blo ...
随机推荐
- Runtime.addShutdownHook用法
一.什么是ShutdownHook? 在Java程序中可以通过添加关闭钩子,实现在程序退出时关闭资源.平滑退出的功能. 使用Runtime.addShutdownHook(Thread hook)方法 ...
- Windows 性能监视器的基本指标(CPU,内存,硬盘参数)
转载:http://kms.lenovots.com/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的 ...
- MyEclipse CI 2019.4 完美激活版(含离线包+激活工具+安装教程)
ps:MyEclipse目前已更新至2019.12.5,但是目前还没有有效的激活方式,本次文章以2019.4为例; 该文章使用离线安装的方式进行安装,在线安装不保证不会出现各类小问题,离线安装包及激活 ...
- 文件包含漏洞(DVWA环境中复现)
LOW: 源代码: <?php // The page we wish to display $file = $_GET[ 'page' ]; ?> 可以看到,low级别的代码对包含的文件 ...
- 全网最详细——Testlink在windows环境下搭建;提供环境下载
参考这篇文章,写的真不错https://www.jianshu.com/p/6c4321de26ea 工具下载 链接:https://pan.baidu.com/s/1_yzCIvsExbfzcRdl ...
- shell登录 脚本 expect
作用 工作中,我们运行命令.脚本或程序时,这些命令.脚本或程序都需要从终端输入某些继续运行的指令,而这些输入都需要人为的手工进行. 利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而 ...
- C语言-浮点数的秘密
一.浮点数的秘密 1.内存中的浮点数 浮点数在内存中的存储方式为:符号位.指数.尾数 十进制浮点数的内存表示: 实例分析: #include <stdio.h> //打印十进制的内存表示 ...
- 区间无修改莫队学习笔记(lg1494小z的袜子)
这几天感觉要学的要做的有点多,就偷了个懒没写笔记,赶紧补一下 莫队嘛,一个离线处理各种区间(或树上)询问的神奇算法 简单而言,按左端点排个序然后指针l,r递推就好了 复杂度证明貌似是不待修改的n^1. ...
- 题解 AT4170 【[ABC103A] Task Scheduling Problem】
翻译 有 \(3\) 个正整数 \(a\).\(b\).\(c\),请你输出这 \(3\) 个数中的最大值 \(-\) 最小值的差. 分析 求最大值 \(-\) 最小值的差,我们自然可以使用 for ...
- liunx下安装Docker
1.安装并启动docker 1.检查内核版本,必须是3.10及以上uname -r2.安装docker yum install docker命令安装(需要联网) [root@localhost ~]# ...