原创 golang functional options,優雅的初始化對象實例

當我們定義了一個對象時,一般會創建一個方法方便外部初始化一個實例。如下面的例子: type Client struct { timeout int64 dialFunc func() error healthChec

原创 redigo批量lpush/rpush、批量zrem

在使用redigo庫時,想批量向redis list中批量push,發現像下面方式傳入[]string是不行的,在這裏記錄一下。 keys := []string{"nn", "mm"} _, err = con.Do("lpush",

原创 golang線程安全的map實現

這篇文章主要介紹了golang線程安全的map實現,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 網上找的協程安全的map都是用互斥鎖或者讀寫鎖實現的,這裏用單個協程來實現下,即所有的

原创 Golang實現對map的併發讀寫的方法示例

這篇文章主要介紹了Golang實現對map的併發讀寫的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧 在Golang多協程的情況下使用全局map時,如果不做線程同步,會出現pa

原创 opentracing: jaeger在grpc中的簡單實現

參考項目:https://github.com/grpc-ecosystem/grpc-opentracing 之前用函數調用實現了簡單jaeger-demo(https://blog.csdn.net/liyunlong41/artic

原创 golang實現簡單的jaeger-demo

參考地址:https://github.com/yurishkuro/opentracing-tutorial/tree/master/go jaeger是一個比較有名的分佈式鏈路追蹤系統,底層用golang實現,兼容opentracin

原创 用golang實現替換某個文件中的字符串

用golang實現了某個文件中字符的替換,替換爲按行替換,執行後會生成新文件,如a.txt,執行後生成a.txt.mdf。新文件即修改後的內容。 主要用來練習文件的讀取與寫入。 package main import ( "bufi

原创 golang實現延時隊列

github源碼地址:https://github.com/hackssssss/delay_queue 參考了有贊延時隊列的設計思路,自己寫了一個延時隊列,基本原理是利用redis的list實現隊列,利用redis的zset實現按照時間

原创 golang slice在其他函數中修改,易錯點

回憶起寫golang時候踩過的坑,那是我逝去的青春…… 我們可能會遇到給其他函數傳遞一個slice,讓其他函數給這個slice做一些修改的情況。想到slice是引用傳遞,可以直接傳遞slice用作修改,於是可能出現下面這種情況: pac

原创 golang獲取本月第一天、獲取本月最後一天、獲取當天0點的時間

 主要是通過time.Now()函數和time.AddDate函數以及time.Date()函數來構造和加減日期,獲取本月第一天和最後一天。具體可以看代碼實現。 package util import ( "time" ) //獲取

原创 用戶簽到的數據庫設計方案

初步設計了一下用戶簽到的設計方案,記錄下這種思路,以後可能需要完善。每月最多有31天,int32有32位,簽到與沒簽到只有兩種狀態,簽到用1來表示,未簽到用0來表示,因此可以用int32來表示用戶每月的簽到情況。 數據庫表(sign_re

原创 redis過期策略

最近在讀redis深度歷險,記錄一下在讀書的過程中一些重要的知識點,供以後查閱。 redis過期策略有兩種,一種是主動式過期,另一種是被動式過期,redis採用兩者相結合的方式來處理,因爲單純採用主動式過期,會影響redis的性能,單純採

原创 leetcode128. Longest Consecutive Sequence 最長連續序列 並查集

題目地址:https://leetcode.com/problems/longest-consecutive-sequence/ 方法1:並查集 這個題的難點在於當更新了某個val後,不能及時更新val周圍連續的數值,如val+1, va

原创 golang expired LRU cache(key有過期時間的,實現了LRU算法的cache)

github地址:https://github.com/hackssssss/lru_expired_cache 之前實現了lru算法的cache,鏈接,後來發現可以添加key自動過期的策略,採用惰性過期策略。即當get或者set這個ke

原创 leetcode. Longest Common Prefix最長公共前綴

題目地址:https://leetcode.com/problems/longest-common-prefix/ 需要找到給定字符串數組中所有字符串的最長公共前綴,開始想的是用min個map來存儲這些字符串,min是數組中最短字符串的長