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 ...
随机推荐
- QGIS练手 - 标注
又熬夜了... QGIS的标注就是标签,在QGIS3.x中有了改进. 不得不说,就光速度这一项,就能把ArcMap按在地上摩擦,更别说各种高级的标注样式了——除了标注功能面板UI有点“缺审美化”就是了 ...
- 【原】导入framework报错解决(以ReactiveObjC.framework为例)
1.当导入ReactiveObjC.framework后,进行编译时报错:framework not found xxx 报错如下图: 解决办法: Targets -> Build Se ...
- PHP 利用PHPExcel到处数据到Excel;还有导出数据乱码的解决方案。
直接贴代码吧 PHP版本5.6.38 mysql版本5.0 //连接数据库 $mysql_server_name = "*.*.*.*"; $mysql_username=&quo ...
- Scrum Framework, Process and Story Point
Scrum Framework Roles Ceremonies Artifacts Scrum Master Sprint Planning Product Backlog Product Owne ...
- CODING 2.0 企业级持续交付解决方案
"The key to DevOps transformation is that there is no end-state-we must continuously evolve.&qu ...
- 12c分区增强功能,新功能(文档ID 1568010.1)
12c Partitioning Enhancements, New Features (Doc ID 1568010.1) APPLIES TO: Oracle Database - Enterpr ...
- [Linux] 多进程网络编程监听一个端口
SO_REUSEPORT支持多个进程或者线程绑定到同一端口 每个进程可以自己创建socket.bind.listen.accept相同的地址和端口,各自是独立平等的.让多进程监听同一个端口,各个进程中 ...
- LeetCode 771: 宝石与石头 Jewels and Stones
题目: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. You're given strings ...
- Ubuntu安装Node和npm
本文简单介绍在Ubuntu上安装最新版本的node和npm. 本次试验环境是Ubuntu 18.10. 安装nodejs root@ubuntu:~# cat /etc/issue Ubuntu 18 ...
- IT兄弟连 HTML5教程 CSS3揭秘 CSS3属性5
9 透明属性 元素透明也是我们常用的样式,在CSS2中使用滤镜属性opacity实现透明效果.现在有了CSS3的rgba属性,就不用这么麻烦了,当然这也得要浏览器支持才行.通常我们定义颜色都是用十六 ...