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( ...
随机推荐
- SpringBoot详细研究-03系统集成
据说杰克船长被黑客盗片了,看来信息安全依然任重而道远,本文以此为引子,来介绍下spring boot对于系统集成方面的支持. Spring Security提供一套安全框架,通过IOC和AOP来实现安 ...
- Docker化高可用redis集群
最近遇到部分系统因为redis服务挂掉,导致部分服务不可用.所以希望搭建一个redis集群镜像,把原先散落各处的redis服务器统一管理起来,并且保障高可用和故障自动迁移. 一:redis集群分类 大 ...
- 必读,sql加索引调优案例和explain extended说明
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 昨天分享了Mysql中的 explain 命令,使用 explain 来分析 select 语句的运行效果,如 :expl ...
- 【Ray Tracing in One Weekend 超详解】 光线追踪1-8 自定义相机设计
今天,我们来学习如何设计自定义位置的相机 ready 我们只需要了解我们之前的坐标体系,或者说是相机位置 先看效果 Chapter10:Positionable camera 这一章我们直接用概念 ...
- vc++ 在程序中运行另一个程序的方法
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,Creat ...
- Microsoft实现的IOC DI之 Unity 、Service Locator、MEF
这几个工具的站点 Microsoft Unity http://unity.codeplex.com Service Locator http://commonservicelocator.code ...
- 使用GIT进行源码管理——GIT托管服务2018
我曾经介绍过几个在线的GIT托管服务,然而时过境迁,发生了不少变化,便写了此文章,在新的一年重新更新一下: 国外托管网站: 国外托管网站比起国内的来相对靠谱点,但一个主要缺点是网速较慢,并且可能在 ...
- MSDN WinUSB Example
The WinUSB user-mode library uses device interface classes to communicate with the kernel-mode USB s ...
- Bootstrap datetimepicker “dp.change” 时间/日期 选择事件
$('#<!--{$inputId}-->').datetimepicker({ todayHighlight: true, format: "YYYY-MM-DD<!-- ...
- java系列之 原生数据类型
在我看来,java里面里面除了原生类型不是对象,其他的都是对象.但java是面向对象的语言,很多地方还要要操作对象,所以java会自动把原生类型转为对应的包装类型.这个过程叫自动装箱.有装箱就有拆箱, ...