(1)安装第三方开源的redis库;

(2)在使用redis之前,需要安装第三方库,在GOPATH路径下执行安装指令--$GOPATH$:go get github.com/garyburd/redigo/redis;

注意:在安装redis之前,需要确保已经安装和配置了Git,因为是从github上面下载安装redis库的,需要使用到Git。

go操作redis中的string:

package main

import (
"fmt" "github.com/garyburd/redigo/redis"
) func main() {
//连接到redis
conn, err := redis.Dial("tcp", "127.0.0.1:6379")
if err != nil {
fmt.Println("连接错误,err=", err)
return
}
defer conn.Close()
//向redis写入数据
_, err1 := conn.Do("Set", "name", "gong")
if err1 != nil {
fmt.Println("set err=", err1)
return
}
//向redis读取数据,返回的r是个空接口
r, err2 := redis.String(conn.Do("Get", "name"))
if err2 != nil {
fmt.Println("get err=", err2)
}
fmt.Println("操作set")
fmt.Println("操作get r=", r)
}

go操作redis中的Hash:

package main

import (
"fmt" "github.com/garyburd/redigo/redis"
) func main() {
//连接到redis
conn, err := redis.Dial("tcp", "127.0.0.1:6379")
if err != nil {
fmt.Println("连接错误,err=", err)
return
}
defer conn.Close()
//向redis写入数据
_, err1 := conn.Do("HSet", "user1", "name", "gong")
if err1 != nil {
fmt.Println("HSet err=", err1)
return
} _, err3 := conn.Do("HSet", "user1", "age", "")
if err3 != nil {
fmt.Println("HSet err=", err3)
return
}
//向redis读取数据,返回的r是个空接口
r, err2 := redis.String(conn.Do("HGet", "user1", "name"))
if err2 != nil {
fmt.Println("HGet err=", err2)
}
fmt.Println("操作HSet")
fmt.Println("操作HGet r=", r)
}

假设想操作多个hash,则

package main

import (
"fmt" "github.com/garyburd/redigo/redis"
) func main() {
//连接到redis
conn, err := redis.Dial("tcp", "127.0.0.1:6379")
if err != nil {
fmt.Println("连接错误,err=", err)
return
}
defer conn.Close()
//向redis写入数据
_, err1 := conn.Do("HMSet", "user1", "name", "beijing", "address", "beijing")
if err1 != nil {
fmt.Println("HMSet err=", err1)
return
}
_, err3 := conn.Do("HMSet", "user2", "name", "wuhan", "address", "wuhan")
if err3 != nil {
fmt.Println("HMSet err=", err3)
return
} //向redis读取数据,返回的r是个空接口
r, err2 := redis.Strings(conn.Do("HMGet", "user1", "name", "address"))
if err2 != nil {
fmt.Println("HMGet err=", err2)
return
}
for i, v := range r {
fmt.Printf("r[%d]=%v\n", i, v)
}
}

给数据设置有效时间:

redis.Do("eexpire","name",)

其它的数据结构基本差不多,就是里面传入的方法的区别。

最新文章

  1. Monthly Income Report – August 2016
  2. spring整合hibernate配置文件
  3. [转] swf文件加密基础
  4. apk签名
  5. java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)
  6. display:inline-block;如何取消标签之间的距离
  7. Codeforces Round #369 (Div. 2) A B 暴力 模拟
  8. android Camera拍照 及 MediaRecorder录像 预览图像差90度
  9. 【回顾整理】暴走的SQL语句练习!!!
  10. 为什么国内的网盘公司都在 TB 的级别上竞争,成本会不会太高?(还有好多其它回复)
  11. java操作Excel处理数字类型的精度损失问题验证
  12. Shell出现cd命令无法识别
  13. ubuntu12.04+fuerte 下跑通lsd-slam——数据集
  14. JavaScript代码规范和性能整理
  15. jersey框架实现文件上传
  16. Unity3D AssetBundle的打包与加载
  17. Mysql分区的技能
  18. 解决WCF跨机器调用时发生“调用方未由服务进行身份验证”的错误
  19. HTML5拨号 调用手机拨号功能
  20. JS 控制页面刷新

热门文章

  1. ImageView设置rounded corner
  2. ViewAnimator
  3. mysql创建用户后无法进入
  4. SpringCloud之Hystrix:集群容错框架
  5. diango使用顺序
  6. [Go] 轻量服务器框架全局配置的实现以及解析json
  7. 《软件安装》VMware Workstation 不注册 下载
  8. 挑战10个最难回答的Java面试题(附答案)
  9. C++ float vs double
  10. CSS3动画的使用