首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏架构师晋升之路

    GoLang 操作 Redis

    redis官网:https://redis.io/ 接着要下载golangredis资源包,golang官方推荐的有redisgo和go-reids,个人认为go-redis的封装更加人性化,redisgo 我们看下golang如何使用字符串类型。 我们看下Hash类型常用的操作:HSet、HGet、HAll、HDel、HExists HSet 用于同时将多个 field-value (字段-值)对设置到哈希表中,此方法会覆盖哈希表中已存在的字段。 语言增加5分,再次获取前三名编程语言,可以看到golang排在第一。 7、设置过期时间 操作string数据的时候,可以在方法里直接传入过期时间。但list、hash、set、zset都没有直接提供相应参数,但redis可以额外设置key的过期时间。

    1.3K30编辑于 2022-06-01
  • 来自专栏golang算法架构leetcode技术php

    golang redis 客户端源码阅读(1)连接操作

    https://github.com/gomodule/redigo 实现了redis客户端,包括一个连接池和redis pipleline conn.go func (c *conn) Do(cmd send 将请求写到输出缓冲 2, Flush将缓冲区的命令发送到服务端 3,Receive 接收服务端的响应 https://godoc.org/github.com/gomodule/redigo/redis numScratch [40]byte } 以上就是连接操作的核心代码 因为redis是文本协议,因此发送时需要按照redis协议序列化,接收的时候按照redis协议反序列化。

    61620编辑于 2022-08-02
  • 来自专栏Pythonista

    Golangredis

    使用第三方开源的redis库: github.com/garyburd/redigo/redis import( "github.com/garyburd/redigo/redis" ) 1、windows 安装redis 下载安装 https://github.com/MicrosoftArchive/redis 解压,启动,如下 ? 2、linxu安装redis https://redis.io/download  3、连接redis package main import ( "fmt" "github.com/ garyburd/redigo/redis" ) func main(){ c,err:=redis.Dial("tcp","127.0.0.1:6379") if err! = nil { fmt.Println(err) return } } 8.list队列操作 package main import ( "fmt"

    1.4K10发布于 2018-08-31
  • Golang CAS操作

    Go中使用CAS通常是结合for 无限循环 来实现原子化更新操作:for { // 假设data为共享变量,同一时刻可能有多个线程会更新它 old := data ok := atomic.CompareAndSwapInt64 (&data, old, new) if ok { return new }}CompareAndSwap会先进行比较,如果data的值等于old,那么就会执行替换操作并返回 true,如果不等于,则说明已经被其他线程操作了就返回false,所以它并不一定总能成功,尤其是在并发大的情况下,所以使用for循环来自旋。 wg.Wait()fmt.Println(counter)}func incCounter(index int) {defer wg.Done()// 自旋次数spinNum := 0for {//CAS操作 fmt.Printf("goroutine: %d, spinnum: %d\n", index, spinNum)}}CAS缺点在CAS失败时,会一直循环尝试,给CPU造成很大的开销 一次只能保证一个共享变量的原子操作

    38010编辑于 2024-07-04
  • 来自专栏方球

    golang 文件操作

    golang 文件操作 获取文件大小 "path/filepath" import ( "path/filepath" ) func GetFileSize(filename string

    58620发布于 2019-08-23
  • 来自专栏陶士涵的菜地

    golang连接redis测试

    go-redis的使用 1.下载代码到GOPATH环境变量指定的目录 比如我的是进入目录D:\golang\code\src\github.com\go-redis , 执行git clone https ://github.com/go-redis/redis.git 2.redis设置过期时间的命令是: setex name 10 taoshihan ;设置10秒过期 package main import ( "fmt" "github.com/go-redis/redis" "time" ) func main() { ExampleNewClient() ExampleClient() } //ping pong测试 func ExampleNewClient() { client := redis.NewClient(&redis.Options{ Addr: "115.159.128.112 (&redis.Options{ Addr: "115.159.128.112:6379", Password: "", // no password set DB: 0

    1.7K30发布于 2019-09-10
  • 来自专栏Golang语言社区

    Golang语言 redis 使用

    package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func newConn() (redis.Conn , error) { c, err := redis.Dial("tcp", "192.168.0.2:6379") if err ! = nil { return nil, err } _, err = c.Do("AUTH", "redis@hsjc") if err ! = nil { return nil, err } return c, err } func main() { /* c, err := redis.Dial fmt.Println(err) return } defer c.Close() _, err = c.Do("AUTH", "redis

    77150发布于 2018-03-23
  • 来自专栏Golang语言社区

    Golang语言 redis 使用

    package main import ( "fmt" "github.com/garyburd/redigo/redis" ) func newConn() (redis.Conn , error) { c, err := redis.Dial("tcp", "192.168.0.2:6379") if err ! = nil { return nil, err } _, err = c.Do("AUTH", "redis@hsjc") if err ! = nil { return nil, err } return c, err } func main() { /* c, err := redis.Dial fmt.Println(err) return } defer c.Close() _, err = c.Do("AUTH", "redis

    95880发布于 2018-03-21
  • 来自专栏Golang语言社区

    【Go 语言社区】Golang语言操作redis连接池的方法

    func newPool(server, password string) *redis.Pool { return &redis.Pool{ MaxIdle: 3, IdleTimeout: 240 * time.Second, Dial: func () (redis.Conn, error) { c, err := redis.Dial return nil, err } return c, err }, TestOnBorrow: func(c redis.Conn error { _, err := c.Do("PING") return err }, } } var ( pool *redis.Pool

    93390发布于 2018-03-19
  • 来自专栏程序猿的大杂烩

    redis常用操作redis操作键值,redis安全设置

    redis常用操作 之前已经介绍过redis里各种数据类型的赋值操作,在这里则介绍一下各个数据类型的其他常用的操作。 string类型的操作: 使用set命令对已存在的键/值进行赋值的话,会覆盖原有的值: [root@localhost ~]# redis-cli 127.0.0.1:6379> set key1 zero key3设置过期时间为20s,值为test,若key已经存在,会覆盖新的值 OK 127.0.0.1:6379> get key3 "test" 127.0.0.1:6379>
    list类型的操作 操作键值 keys *可以打印当前redis存储的键: 127.0.0.1:6379> keys * 1) "set3" 2) "set2" 3) "set1" 4) "hash1" 5) " password 修改完之后重启redis服务: killall redis-server redis-server /etc/redis.conf 这时候虽然可以还进入redis命令行,但是不能够执行命令了

    2.4K40发布于 2020-09-23
  • 来自专栏全栈程序员必看

    golang操作elasticsearch详解

    golang操作elasticsearch详解 直接上代码 package main import ( "bytes" "context" "fmt" "github.com/olivere

    65210编辑于 2022-08-22
  • 来自专栏王磊的博客

    golang操作文件

    1、读取文件信息: /* 读取文件信息 */ func readFile(path string) string { fi, err := os.Open(path) if err != nil { panic(err) } defer fi.Close() fd, err := ioutil.ReadAll(fi) return string(fd) } 2、读取文件夹下的所有文件: /* 读取文件夹下的所有文件(不包含子文件夹下的文件) */ func getFilesName(path

    65950发布于 2018-05-08
  • 来自专栏容器云生态

    Golang读写文件操作

    最近在使用Golang进行文件读写的过程中,遇到几个细节问题导致程序写入数据时有一定脏数据的残留,最后发现是使用os.OpenFile在进行文件操作的时候没有使用正确的flag造成的。 因此专门去学习了下Golang中读写文件的几种方式方法,在此记录下一些简单的操作,防止以后遗忘。 读文件 使用golang语言去读取一个文件默认会有多种方式,这里主要介绍以下几种。 该函数主要用来指定参数(os.O_APPEND|os.O_CREATE|os.O_WRONLY)以及文件权限(0666)来打开文件,如果打开成功返回的文件对象将被用作I/O操作 func OpenFile ,content) } } 使用bufio包中的相关函数写入文件 bufio和io包中很多操作都是相似的,唯一不同的地方是bufio提供了一些缓冲的操作,如果对文件I/O操作比较频繁的,使用bufio 在bufio包中,有一个Writer结构体,而其相关的方法也支持一些写入操作

    4.4K70发布于 2018-02-26
  • 来自专栏数据分析与挖掘

    golang--redis基本介绍

    redis(remote-dictionary-system)即远程字典服务器,是NoSQL数据库: 适合做缓存以及持久化; 免费开源,高性能的分布式内存数据库; redis的安装和使用: 下载Redis-x64 -3.2.100.zip,然后解压即可; 双击redis-server.exe即可启动redis服务端; redis五大数据类型: 字符串(String)、哈希(Hash)、列表(List)、集合(Set )、有序集合(zset); redis安装好后,默认有16个数据库,初始默认使用0号库,编号是0-15,双击redis-cli.exe打开客户端: 添加key-val(set) set key1 hello key1 切换数据库 select 1 查看当前数据库的key-val数量 dbsize 清空当前数据库的kay-val和清空所有数据库的key-val flushdb flushall 字符串: 是redis 最基本的类型,一个key对应一个value,例如str1 = "hello"; string类型是二进制安全的,除普通的字符串外,也可以存放图片等数据; redis字符串value最大是512M; 字符串的增删查改

    48320发布于 2020-08-26
  • 来自专栏python爱好部落

    golang操作文件

    文件读操作 os.Open()函数能够打开一个文件,返回一个*File和一个err。对得到的文件实例调用close()方法能够关闭文件。 fmt.Println("read file failed, err:", err) return } fmt.Println(string(content)) } 文件写操作

    68640编辑于 2022-03-29
  • 来自专栏山山仙人的专栏

    Golang文件操作-下篇

    1、文件的重命名和删除 2、文件路径的获取 3、判断文件是否存在 4、获取文件的信息 5、拷贝文件 6、目录操作 7、常见目录 1、文件的重命名和删除 os包自带重命名和删除的方法 package import "os" func main() { os.Rename("user.log", "user.v2.log") os.Remove("user.txt") } 2、文件路径的获取 文件路径操作包括对文件路径 name := range names { fmt.Println(name) } } } } } } 5、拷贝文件 copyfile功能的实现,主要借助于golang if info.IsDir() { copyDir(*src, *dest) } else { copyFile(*src, *dest) } } } } 6、目录操作

    67210发布于 2021-09-23
  • 来自专栏大师级码师

    golang 操作mongodb 示例

    package main import ( "fmt" "launchpad.net/mgo" "launchpad.net/mgo/bson" ) type Mail struct { Id bson.ObjectId "_id" Name string Email string } func main() { // 连接数据库 session, err := mgo.Dial("127.0.0.1") if err != nil {

    39450发布于 2021-11-02
  • 来自专栏山山仙人的专栏

    Golang文件操作-上篇

    1、读文件 2、写文件 3、文件指针 4、ioutil文件操作 4.1 readall读取文件所有内容 4.2 readfile直接读文件 4.3 writefile直接写文件 5、bufio带缓冲 将指针放到文件末尾 n, err := file.Read(bytes) fmt.Println(n, err, string(bytes[:n])) file.Close() } 4、ioutil文件操作

    79010发布于 2021-09-23
  • 来自专栏c++与qt学习

    GoLang如何操作mysql

    GoLang如何操作mysql goLang提供的规范接口 1. 初始化数据库连接: 2. 事务的ACID 事务相关方法 事务示例 ---- goLang提供的规范接口 Go原生提供了连接数据库操作的支持,在用 Golang进行开发的时候,如果需要在和数据库交互,则可以使用database/sql ---- DB的类型为:*sql.DB,有了DB之后我们就可以执行CRUD操作。Go将数据库操作分为两类:Query与Exec。两者的区别在于前者会返回结果,而后者不会。 ---- 事务相关方法 Go语言中使用以下三个方法实现MySQL中的事务操作。 ,该事物操作能够确保两次更新操作要么同时成功要么同时失败,不会存在中间状态。

    1.2K20编辑于 2022-08-23
  • 来自专栏Golang语言社区

    Golang的json操作

    os.Stdout) enc.Encode(dat) //array 到 json str arr := []string{"hello", "apple", "python", "golang

    1.1K110发布于 2018-03-20
领券