go-redis 基于beego正确使用序列化存储数据和反序列化获取数据
2024-08-24 12:35:03
安装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)
}
最新文章
- C#文件目录操作完全手册
- StackPanel在增加控件的问题
- AJAX笔试面试题汇总
- Centos 安装 NodeJS
- java猜数字游戏
- 改善用户体验之wordpress添加图片弹出层效果 (插件 FancyBox)
- 领域驱动设计(Domain Driven Design)参考架构详解
- 大整数算法[09] Comba乘法(原理)
- [Flask Security]当不能通过认证的时候制定跳转
- DevExpress ASP.NET 使用经验谈(4)-CriteriaOperator的使用
- css的三种引入方式、常用的元素选择器以及css三大特性
- const、volatile、mutable的用法
- Java_HelloWorld
- Automated Front End Test - Xvfb, Chromedriver, Selenium, Jenkins
- xtream 示例介绍
- Java201521123071《Java程序设计》第八周学习总结
- March 01st, 2018 Week 9th Thursday
- 深入剖析Java中的装箱和拆箱(缓存池技术)
- Android 开发工具方法整理
- IE 浏览器的兼容性列表设置