golang-redis之hash类型简单操作
来源:互联网 发布:ds数据精灵破解 编辑:程序博客网 时间:2024/05/29 11:42
1:安装redigo
go get github.com/garyburd/redigo/redis
2:import redigo
import ( "github.com/garyburd/redigo/redis")
3:连接redis
c, err := redis.Dial("tcp", "192.168.2.225:6379")if err != nil { fmt.Println("connect to redis err", err.Error()) return}defer c.Close()
4:命令执行
n,err := c.Do("hset","key","field","value") //写result,err := redis.Values(c.Do("hgetall","key"))//读
5:hash常见命令
hset(key, field, value):向名称为key的hash中添加元素fieldhget(key, field):返回名称为key的hash中field对应的valuehmget(key, (fields)):返回名称为key的hash中field i对应的valuehmset(key, (fields)):向名称为key的hash中添加元素fieldhincrby(key, field, integer):将名称为key的hash中field的value增加integerhexists(key, field):名称为key的hash中是否存在键为field的域hdel(key, field):删除名称为key的hash中键为field的域hlen(key):返回名称为key的hash中元素个数hkeys(key):返回名称为key的hash中所有键hvals(key):返回名称为key的hash中所有键对应的valuehgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
6:示例
6.1:hset示例
_, err = c.Do("hset", "myhash", "bike1", "mobike")if err != nil { fmt.Println("haset failed", err.Error())}
6.2:hget示例
res, err := c.Do("hget", "myhash", "bike1")fmt.Println(reflect.TypeOf(res))if err != nil { fmt.Println("hget failed", err.Error())} else { fmt.Printf("hget value :%s\n", res.([]byte))}
6.3:hmset/hmget
_, err = c.Do("hmset", "myhash", "bike2", "bluegogo", "bike3", "xiaoming", "bike4", "xiaolan")if err != nil { fmt.Println("hmset error", err.Error())} else { value, err := redis.Values(c.Do("hmget", "myhash", "bike1", "bike2", "bike3", "bike4")) if err != nil { fmt.Println("hmget failed", err.Error()) } else { fmt.Printf("hmget myhash's element :") for _, v := range value { fmt.Printf("%s ", v.([]byte)) } fmt.Printf("\n") }}
6.4:hincrby
_, err = c.Do("hmset", "myhash", "bike2", "bluegogo", "bike3", "xiaoming", "bike4", "xiaolan")if err != nil { fmt.Println("hmset error", err.Error())} else { value, err := redis.Values(c.Do("hmget", "myhash", "bike1", "bike2", "bike3", "bike4")) if err != nil { fmt.Println("hmget failed", err.Error()) } else { fmt.Printf("hmget myhash's element :") for _, v := range value { fmt.Printf("%s ", v.([]byte)) } fmt.Printf("\n") }}
6.5:hexists
isExist, err := c.Do("hexists", "myhash", "tmpnum")if err != nil { fmt.Println("hexist failed", err.Error())} else { fmt.Println("exist or not:", isExist)}
6.6:hlen
ilen, err := c.Do("hlen", "myhash")if err != nil { fmt.Println("hlen failed", err.Error())} else { fmt.Println("myhash's len is :", ilen)}
6.7:hkeys
resKeys, err := redis.Values(c.Do("hkeys", "myhash"))if err != nil { fmt.Println("hkeys failed", err.Error())} else { fmt.Printf("myhash's keys is :") for _, v := range resKeys { fmt.Printf("%s ", v.([]byte)) } fmt.Println()}
6.8:hvals
resValues, err := redis.Values(c.Do("hvals", "myhash"))if err != nil { fmt.Println("hvals failed", err.Error())} else { fmt.Printf("myhash's values is:") for _, v := range resValues { fmt.Printf("%s ", v.([]byte)) } fmt.Println()}
6.9:hdel
_, err = c.Do("HDEL", "myhash", "tmpnum")if err != nil { fmt.Println("hdel failed", err.Error())}
6.10:hgetall
result, err := redis.Values(c.Do("hgetall", "myhash"))if err != nil { fmt.Println("hgetall failed", err.Error())} else { fmt.Printf("all keys and values are:") for _, v := range result { fmt.Printf("%s ", v.([]byte)) } fmt.Println()}
7:结果
完整代码路径
阅读全文
0 0
- golang-redis之hash类型简单操作
- golang-redis之string类型简单操作
- golang-redis之list类型简单操作
- golang-redis之set类型简单操作
- redis-hash类型简单操作
- golang-redis之sorted set类型简单操作
- Redis之Hash类型操作
- Redis学习之hash类型及操作
- redis之hash类型
- Redis HASH 操作类型封装
- Redis--Hash类型命令操作
- Redis HASH 操作类型封装
- Redis数据类型之HASH类型
- Redis 数据类型之Hash类型
- php操作redis之hash
- redis中 hash类型的操作命令
- 二:redis 的hash类型相关操作
- Python操作redis(二)hash类型
- 机房收费系统——项目开发计划
- 单通道迷宫
- 【luogu1004】方格取数
- 深入理解java web中文编码问题(其二)
- 机器学习-python实现kMeans算法
- golang-redis之hash类型简单操作
- 十.ARM裸机学习之中断系统1(S5PV210的中断系统详解)
- 自己动手构造编译原理 & CSAPP 笔记
- 单列集合ArrayList
- "自顶向下,逐步求精" ——程序结构化设计方法
- 一、Java并发编程基础篇(002)对象锁、类锁
- 姿态论文整理--05-Learning feature pyramids for human pose estimation
- 【java学习记】String常用方法
- 基础算法学习第一天(快速排序算法)