日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux go redis,godis: go实现的一个redis项目, 很好还有博客,非常值得学习

發布時間:2025/3/20 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux go redis,godis: go实现的一个redis项目, 很好还有博客,非常值得学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Godis 是一個用 Go 語言實現的 Redis 服務器。本項目旨在為嘗試使用 Go 語言開發高并發中間件的朋友提供一些參考。

請注意:不要在生產環境使用使用此項目

Godis 實現了 Redis 的大多數功能,包括5種數據結構、TTL、發布訂閱以及 AOF 持久化。可以在我的博客了解更多關于 Godis 的信息。

運行 Godis

在 GitHub 的 release 頁下載 Darwin(MacOS) 和 Linux 版可執行文件。使用命令行啟動 Godis 服務器

./godis-darwin

./godis-linux

godis 默認監聽 127.0.0.1:6379,可以使用 redis-cli 或者其它 redis 客戶端連接 Godis 服務器。

godis 首先會從CONFIG環境變量中讀取配置文件路徑。若環境變量中未設置配置文件路徑,則會讀取工作目錄中的 redis.conf 文件。若 redis.conf 文件不存在則會使用自帶的默認配置。

集群模式

godis 支持以集群模式運行,請在 redis.conf 文件中添加下列配置:

peers localhost:7379,localhost:7389 // 集群中其它節點的地址

self localhost:6399 // 自身地址

可以使用 node1.conf 和 node2.conf 配置文件,在本地啟動一個雙節點集群:

CONFIG=node1.conf ./godis-darwin &

CONFIG=node2.conf ./godis-darwin &

集群模式對客戶端是透明的,只要連接上集群中任意一個節點就可以訪問集群中所有數據:

redis-cli -p 6399

支持的命令

Keys

del

expire

expireat

pexpire

pexpireat

ttl

pttl

persist

exists

type

rename

renamenx

Server

flushdb

flushall

keys

bgrewriteaof

String

set

setnx

setex

psetex

mset

mget

msetnx

get

getset

incr

incrby

incrbyfloat

decr

decrby

List

lpush

lpushx

rpush

rpushx

lpop

rpop

rpoplpush

lrem

llen

lindex

lset

lrange

Hash

hset

hsetnx

hget

hexists

hdel

hlen

hmget

hmset

hkeys

hvals

hgetall

hincrby

hincrbyfloat

Set

sadd

sismember

srem

scard

smembers

sinter

sinterstore

sunion

sunionstore

sdiff

sdiffstore

srandmember

SortedSet

zadd

zscore

zincrby

zrank

zcount

zrevrank

zcard

zrange

zrevrange

zrangebyscore

zrevrangebyscore

zrem

zremrangebyscore

zremrangebyrank

Pub / Sub

publish

subscribe

unsubscribe

如何閱讀源碼

本項目的目錄結構:

cmd: main 函數,執行入口

config: 配置文件解析

interface: 一些模塊間的接口定義

lib: 各種工具,比如logger、同步和通配符

建議按照下列順序閱讀各包:

tcp: tcp 服務器實現

redis: redis 協議解析器

datastruct: redis 的各類數據結構實現

dict: hash 表

list: 鏈表

lock: 用于鎖定 key 的鎖組件

set: 基于hash表的集合

sortedset: 基于跳表實現的有序集合

db: redis 存儲引擎實現

db.go: 引擎的基礎功能

router.go: 將命令路由給響應的處理函數

keys.go: del、ttl、expire 等通用命令實現

string.go: get、set 等字符串命令實現

list.go: lpush、lindex 等列表命令實現

hash.go: hget、hset 等哈希表命令實現

set.go: sadd 等集合命令實現

sortedset.go: zadd 等有序集合命令實現

pubsub.go: 發布訂閱命令實現

aof.go: aof持久化實現

總結

以上是生活随笔為你收集整理的linux go redis,godis: go实现的一个redis项目, 很好还有博客,非常值得学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。