Go语言之进阶篇操作redis
1、windows安装redis
软件包下载地址:
https://github.com/MicrosoftArchive/redis/releases
1.1、安装--->下一步--->到完成。
1.2、设置redis密码。
C:\Program Files\Redis
#编辑这个文件:
redis.windows-service.conf
找到含有requirepass字样的地方,追加一行,输入requirepass 123456
备注 :做实验我们就不设置密码。
点击“开始”>右击“计算机”>选择“管理”。在左侧栏中依次找到并点击“计算机管理(本地)”>服务和应用程序>服务。再在右侧找到Redis名称的服务,重新启动服务。
最后来测试一下Redis是否正常提供服务。进入Redis的目录,cd C:\Program Files\Redis。输入redis-cli并回车。(redis-cli是客户端程序)如图正常提示进入,并显示正确端口号,则表示服务已经启动。
C:\Users\560140>cd "c:\Program Files\Redis" c:\Program Files\Redis>redis-cli
127.0.0.1:6379> auth 123456 #输入密码
OK
127.0.0.1:6379>
2、安装redis驱动
go get github.com/monnand/goredis
3、源码参考:
https://github.com/monnand/goredis/blob/master/redis.go
4、操作redis
示例:
package main import (
"fmt" "github.com/monnand/goredis"
) func main() {
var client goredis.Client
client.Addr = "127.0.0.1:6379"
err := client.Set("test", []byte("hello beifeng"))
if err != nil {
panic(err)
} res, err := client.Get("test")
if err != nil {
panic(err)
} fmt.Println(string(res)) //test hmset
f := make(map[string]interface{})
f["name"] = "nulige"
f["age"] = "30"
f["sex"] = "male" err = client.Hmset("test_hash", f)
if err != nil {
panic(err)
} //test zset
_, err = client.Zadd("test_zset", []byte("beifeng"), 100)
if err != nil {
panic(err)
}
}
执行结果:
#启动redis命令行
C:\Users\560140>cd "c:\Program Files\Redis"
c:\Program Files\Redis>redis-cli #test hmset
127.0.0.1:6379> get test
"hello beifeng" 127.0.0.1:6379> type test_hash
hash #test zset
127.0.0.1:6379> get test_zset
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> hgetall test_hash
1) "name"
2) "nulige"
3) "age"
4) "30"
5) "sex"
6) "male" #查看类型
127.0.0.1:6379> type test_zse
none 127.0.0.1:6379> zrange test_zset 0 -1
1) "beifeng"
127.0.0.1:6379> zrange test_zset 0 -1 withscores
1) "beifeng"
2) "100"
Go语言之进阶篇操作redis的更多相关文章
- go语言之行--golang操作redis、mysql大全
一.redis 简介 redis(REmote DIctionary Server)是一个由Salvatore Sanfilippo写key-value存储系统,它由C语言编写.遵守BSD协议.支持网 ...
- go语言之进阶篇接口转换
1.go语音之进阶篇 示例: package main import "fmt" type Humaner interface { //子集 sayhi() } type Pers ...
- go语言之进阶篇文件常用操作接口介绍和使用
一.文件常用操作接口介绍 1.创建文件 法1: 推荐用法 func Create(name string) (file *File, err Error) 根据提供的文件名创建新的文件,返回一个文件对 ...
- go语言之进阶篇字符串操作常用函数介绍
下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...
- go语言之进阶篇成员操作
1.成员操作 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, ...
- go语言之进阶篇通过select实现斐波那契数列
一.select作用 Go里面提供了一个关键字select,通过select可以监听channel上的数据流动. select的用法与switch语言非常类似,由select开始一个新的选择块,每个选 ...
- go语言之进阶篇正则表达式
正则表达式是一种进行模式匹配和文本操纵的复杂而又强大的工具.虽然正则表达式比纯粹的文本匹配效率低,但是它却更灵活.按照它的语法规则,随需构造出的匹配模式就能够从原始文本中筛选出几乎任何你想要得到的字符 ...
- Go语言之进阶篇mysql增 删 改 查
一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...
- Go语言之进阶篇获取文件属性
1.获取文件属性 示例: get_file_attribute.go package main import ( "fmt" "os" ) func main( ...
随机推荐
- Android-Binder原理浅析
Android-Binder原理浅析 学习自 <Android开发艺术探索> 写在前头 在上一章,我们简单的了解了一下Binder并且通过 AIDL完成了一个IPC的DEMO.你可能会好奇 ...
- progress进度条的样式修改
由于公司在做的公众号上需要进度条,我就想着用progress标签,可是progress标签很难修改样式,因而在网上查询了一番. 现在总结一下. progress是H5新标签,主要用于显示进度条.由于他 ...
- hdu CA Loves GCD(dp)
一道我想骂人的题,差点把我气炸了. 题意: 求一个数的集合中(非多重集,每个数只出现一次)所有子集的gcd的和.结果MOD10^8+7输出. 输入输出不说了,自己看吧,不想写了. 当时我真把它当作数论 ...
- brew安装sshpass
有以下解决方法: # 1 brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formu ...
- Python生成requirements.txt包依赖管理文件
requirements.txt是Python的依赖管理软件,和Java的POM一样. requirements.txt会生成使用了pip安装后的依赖包,在正常环境下会生成这个目录下的包/usr/lo ...
- rsync使用sudo权限
1.在etc/sudoers增加,比如www-data这个账户的 www-data ALL=NOPASSWD:/usr/bin/rsync 2.使用时增加--rsync-path="sudo ...
- Mac 10.13安装telnet
狗日的Mac 10.13默认不自带telnet!!!苹果你以为你的操作系统真的那么平民吗,别做梦,用你只不过是为了开发!!! 安装: brew install telnet 如果你用上述方法安装不上, ...
- 【图像处理】基于OpenCV底层实现的直方图匹配
image processing 系列: [图像处理]图片旋转 [图像处理]高斯滤波.中值滤波.均值滤波 直方图匹配算法.又称直方图规定化.简单说.就是依据某函数.或者另外一张图片的引导,使得原图改变 ...
- Javascript Array和String的互转换。
Array类可以如下定义: var aValues = new Array(); 如果预先知道数组的长度,可以用参数传递长度 var aValues = new Array(20); -------- ...
- JavaScript进阶系列04,函数参数个数不确定情况下的解决方案
本篇主要体验函数参数个数不确定情况下的一个解决方案.先来看一段使用函数作为参数进行计算的实例. var calculate = function(x, y, fn) { return fn(x, y) ...