话不多说,先放方法,再举例子。

rc.Do("HMSET", redis.Args{key}.AddFlat(val)...)

rc是什么?是一个连接,创建方式如下:

var (rc          redis.ConnredisClient *redis.Pool
)
const REDIS_HOST = "127.0.0.1:xxxx"
const REDIS_DB = "2"func initRedis() {redisClient = &redis.Pool{MaxIdle:     1,MaxActive:   10,IdleTimeout: 180 * time.Second,Dial: func() (redis.Conn, error) {c, err := redis.Dial("tcp", REDIS_HOST)if err != nil {fmt.Println("Error dialing Redis:", err.Error())}// 选择dbc.Do("SELECT", REDIS_DB)return c, nil},}rc = redisClient.Get()
}

举例:创建一个名为student的结构体,将其存储到redis的2号库中。再加入一个teacher的数据。这里key值写成"school1:grade1:class1"是为了分层存储。
注意:结构体的名称(Name, Gender, Height)首字母必须大写!因为只有大写才能被外部包访问到。

type student struct {Name   stringGender stringHeight float32
}func hmset() {std := student{Name:   "yilia",Gender: "female",Height: 170.0,}rc.Do("HMSET", redis.Args{"school1:grade1:class1"}.AddFlat(std)...)rc.Do("HMSET", redis.Args{"school1:grade1:class2"}.AddFlat(std)...)rc.Do("SET", "school1:teacher", "Teacher Y")
}

存储结果如下图所示:

如果你说,我就要存小写的键值怎么办?
很好办!写成下面这种形式就可以了!

type student struct {Name   string   `redis:"name"`Gender string `redis:"gender"`Height float32  `redis:"height"`
}

go使用redis——redigo使用HMSET存储结构体相关推荐

  1. Redis存储结构体信息,选hash还是string?

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/u010145219/article/details/99427693 在讲到使用hash还是string存储的选择前,先了解R ...

  2. C语言怎么存储结构体,C语言结构体Struct怎么使用?

    在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据.结构体的定义形式为:struct结构体名{结构体所包含的变量或数组};结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相 ...

  3. Redis中的zset 存储结构(实现)原理

    同时满足以下条件时使用ziplist 编码: 元素数量小于128 个 所有member 的长度都小于64 字节 在ziplist 的内部,按照score 排序递增来存储.插入的时候要移动之后的数据. ...

  4. c语言存储结构体,c语言结构体的保存和导入

    #include struct yezhu{ char name[10]; }work,work2; void baocun( )  /*保存文件函数*/ { int i; FILE *fp; if  ...

  5. Redis存储结构探究

    一.概述 主流的key-value存储系统,都是在系统内部维护一个hash表,因为对hash表的操作时间复杂度为O(1).如果数据增加以后,导致冲突严重,时间复杂度增加,则可以对hash表进行reha ...

  6. 将结构体数据存储到一段字符串string中

    核心思想 指定一段内存空间存储结构体数据,然后使用一个指针强制类型转化为结构体类型的,就可以使用这个指针操作结构体相关的成员函数和变量 结构体内存只会为定义的变量进行分配内存空间,函数只进行调用,不占 ...

  7. C语言结构体的存储空间分配

    一. 结构体在内存中是如何实际存储的呢? 1.如果某个机器的整型值长度为4个字节,那么结构体的起始存储位置必须能被4整除. 2.编译器按照成员列表的顺序一个接一个地给每个成员分配内存.其中对于各个成员 ...

  8. Go 学习笔记(14)— 结构体定义、实例化、初始化、匿名结构体、结构体访问、结构体作为形参、结构体指针

    Go 语言中没有 "类" 的概念,也不支持 "类" 的继承等面向对象的概念.Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法. 1. 结 ...

  9. C 语言编程 — 高级数据类型 — 结构体与位域

    目录 文章目录 目录 前文列表 结构体 定义结构体 初始化结构体变量 访问结构体成员 结构体的内存分布 将结构体作为实参传入函数 指向结构体变量的指针 位域 定义位域 使用位域结构体的成员 前文列表 ...

最新文章

  1. 巡检水中机器人_海洋与地球学院学子在2020年国际水中机器人大赛中获得佳绩...
  2. 纯CSS实现气泡聊天框的方法
  3. Hbase问题汇总与解答
  4. python ini
  5. PHP数组和Json之间的转换
  6. 重启apache下php,linux下apache重启并查看php环境
  7. 西农 生成树配置_华为交换机配置STP功能示例
  8. 【ArcGIS 10.2新特性】地理数据(Geodatabase 和database)10.2 新特性
  9. java循环判断要点_Java 循环条件判断好题锦集
  10. 计算机软件系统测试报告模板,测试报告模板
  11. java数据结构面试题
  12. 多机器人系统实验室汇总
  13. 百科人物爬虫-属性解析
  14. 计算机显示正常 但打印出来乱码,打印出乱码字体怎么办
  15. openwrt查看flash、RAM、CPU信息【转】
  16. Explorer.exe崩溃后自动重启任务栏托盘区图标丢失
  17. .net core 和 WPF 开发升讯威在线客服系统:使用 WebSocket 实现访客端通信
  18. cad能整体比例缩小吗_cad调整比例(cad整体比例调整)
  19. SiamCAR: Siamese Fully Convolutional Classification and Regression for Visual Tracking
  20. cocos2d-x 键盘按住事件 实现人物的连续移动

热门文章

  1. oa系统哪个服务器好,谈谈用户对各大OA系统的使用心得
  2. 非功能性需求_更好的开卡,来聊聊非功能性需求
  3. vb.net编写函数应该在哪里_编写代码时清晰至上
  4. sql 取两个表_图撕SQL表联结
  5. 20165223《网络对抗技术》Exp3 免杀原理与实践
  6. PyInstaller 生成exe文件
  7. 012-centos6.5配置静态ip
  8. Hibernate的查询 HQL查询 查询某几列
  9. C++ 学习笔记----基础篇
  10. 超清晰 ,一文理解:深拷贝与浅拷贝(js)