golang--连接redis数据库并进行增删查改
(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",)
其它的数据结构基本差不多,就是里面传入的方法的区别。
golang--连接redis数据库并进行增删查改的更多相关文章
- C# SQLite 创建数据库的方法增删查改语法和命令
SQLite介绍 SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页 ...
- 关键字(8):数据库记录的增删查改insert,delete,select,update
insert:一般只要参数个数和类型没问题,不会插入异常 INSERT INTO t_pos_dynamic_map(autoid, lt_termno, lt_merchno) VALUES(SEQ ...
- Django笔记&教程 5-1 基础增删查改
Django 自学笔记兼学习教程第5章第1节--基础增删查改 点击查看教程总目录 第四章介绍了模型类models.Model和创建模型,相当于介绍了数据库表和如何创建数据库表. 这一章将介绍如何使用模 ...
- Java连接MySQL数据库及简单的增删查改操作
主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...
- nodejs连接mysql并进行简单的增删查改
最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...
- MongoDB数据库进阶 --- 增删查改...
注意: monogdb数据在使用之后必须及时 mongodb.close()否则后台崩溃. 在之前的文章中,我已经介绍了什么事MongoDB以及怎么在windows下安装MongoDB等等基本知识. ...
- [课本]JDBC课程6--使用JDBC的DAO模块化--完成数据库的增删查改_工具类JDBCTools四个(Preparedstatement)功能模块的敲定版
(课本P273-任务九) /**DAO: Data Access Object * 为什么用: 实现功能的模块化,更有利于代码的维护和升级 * 是什么: 访问数据信息的类,包含对数据的CRUD(cre ...
- java jdbc 连接mysql数据库 实现增删改查
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...
- MongoDB数据库(二):增删查改
MongoDB数据库的增删查改 1.插入数据 语法: db.集合名称.insert(document) db.table_name.insert({name:'gj',gender:1}) db.ta ...
随机推荐
- QT执行shell脚本或者执行linux指令
由于我在做linux下的QT开发,有时候会用到shell脚本的辅助,但是需要QT运行shell脚本并获取执行结果,今天给大家分享下我的技巧,废话少说直接上代码: //执行shell指令或者shell脚 ...
- 07-Node.js学习笔记-路由
路由 http://localhost:3000/index http://localhost:3000/login //路由是指客户端请求地址与服务器端程序代码的对应关系.简单的说,就是请求什么响应 ...
- 关于python的中国历年城市天气信息爬取
一.主题式网络爬虫设计方案(15分)1.主题式网络爬虫名称 关于python的中国城市天气网爬取 2.主题式网络爬虫爬取的内容与数据特征分析 爬取中国天气网各个城市每年各个月份的天气数据, 包括最高城 ...
- 3种不走寻常路的黑客攻击泄露&如何保护自己?
数据泄露和黑客攻击现在已经成为我们日常生活中的常见部分,除非您是网络安全专业人员或您的个人数据受到威胁,否则您实际上并不关心是否存在新的漏洞. 正如美国联邦贸易委员会指出的那样,万豪酒店连锁店的超过5 ...
- Redis入门(三)-Redis的安装及操作key的命令介绍
前两节对Redis做了一些详细的介绍,那么接下来开始我们就正式进入Redis的学习阶段. 安装Redis Windows下安装redis非常方便, 下载压缩包解压即可使用. 链接:https://pa ...
- Java描述设计模式(08):桥接模式
本文源码:GitHub·点这里 || GitEE·点这里 一.桥接模式简介 1.基础描述 桥梁模式是对象的结构模式.又称为柄体(Handle and Body)模式或接口(Interface)模式.桥 ...
- go源码解析-Println的故事
本文主要通过平常常用的go的一个函数,深入源码,了解其底层到底是如何实现的. Println Println函数接受参数a,其类型为-interface{}.用过Java的对这个应该比较熟悉,Java ...
- C#_.NetFramework_Web项目_NPOI_EXCEL数据导入
[推荐阅读我的最新的Core版文章,是最全的介绍:C#_.NetCore_Web项目_EXCEL数据导出] 项目需要引用NPOI的Nuget包: B-2--EXCEL数据导入--NPOI--C#获取数 ...
- [Abp vNext 源码分析] - 5. DDD 的领域层支持(仓储、实体、值对象)
一.简要介绍 ABP vNext 框架本身就是围绕着 DDD 理念进行设计的,所以在 DDD 里面我们能够见到的实体.仓储.值对象.领域服务,ABP vNext 框架都为我们进行了实现,这些基础设施都 ...
- Go-接口(作用类似python类中的多态)
一.定义接口 type Person interface { Run() //只要有run方法的都算 Person结构体 } //还有定义方法 type Person2 interface { Spe ...