继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

go gomemcache包源码分析

幕布斯6054654
关注TA
已关注
手记 1304
粉丝 222
获赞 1015

1)func New(server ...string) *Client
用法:
mc := memcache.New("127.0.0.1:11211")

主要可以分为以下步骤:
1、传入一个合法的memcached服务器地址信息
2、定义变量和赋值

New方法流程图如下,点击下载

webp

image.png


2)func (c *Client) Add(item *Item) error
作用:
mc := memcache.New("127.0.0.1:11211")
mc.Add(&memcache.Item{Key:"data",Value:[]byte("你好!")})

主要可以分为以下步骤:
1、选择一个memcache服务器并获取连接
2、发送数据到memcached服务器
3、接收memcached信息和处理连接
Add方法流程图如下,点击下载

webp

image.png


3)func (c *Client) Set(item *Item) error
用法:
mc := memcache.New("127.0.0.1:11211")
mc.Set(&memcache.Item{Key:"data",Value:[]byte("你好!")})

主要分为以下步骤:
1、选择一个memcached服务器并进行连接
2、向连接的那个memcached服务器发送数据并处理相关内容
3、连接处理(回收或释放)
Set方法流程图如下,点击下载

webp

image.png


4)func (c *Client) Get(key string) (item *Item, err error)
用法:
mc := memcache.New("127.0.0.1:11211")
i, err := mc.Get("data")
fmt.Println(i, err)

主要可分为三个步骤
1:获取tcp连接
2:发送数据到memcached
3:处理memcached返回消息和tcp连接处理(放入回收池或释放)
Get方法流程图如下,点击下载

webp

image.png


5)func (c Client) GetMulti(keys []string) (map[string]Item, error)
用法:
mc := memcache.New("127.0.0.1:11211")
items, err := mc.GetMulti([]string{"data1","data2","data3"})

主要可分为三个步骤
1:获取tcp连接
2:发送数据到memcached
3:处理memcached返回消息和tcp连接处理(放入回收池或释放)
GetMulti方法流程图如下,点击下载

webp

image.png


6)func (c *Client) Increment(key string, delta uint64) (newValue uint64, err error)
用法:
mc := memcache.New("127.0.0.1:11211")
newVal, err := mc.Increment("test", 2)
fmt.Println(newVal, err)

作用:将原来键的值加上指定数,可分为以下两种情况:
1、如果原来的是一个数字,则加上指定数,返回修改后的值和nil
2、如果原来的不是一个数,则返回0和报错信息

内部执行步骤:
1、连接memcached服务器
2、发送数据到memcached服务器
3、断开连接,对连接进行回收或释放
Delete方法流程图如下,点击下载

webp

image.png


7)func (c *Client) Decrement(key string, delta uint64) (newValue uint64, err error)
用法:
mc := memcache.New("127.0.0.1:11211")
newVal, err := mc.Decrement("test", 2)
fmt.Println(newVal, err)

作用:将原来键的值减去指定数,可分为以下两种情况:
1、如果原来的是一个数字,则减去指定数,返回修改后的值和nil
2、如果原来的不是一个数,则返回0和报错信息
Decrement方法流程图如下,点击下载

webp

image.png


8)func (c *Client) CompareAndSwap(item *Item) error
用法:
mc := memcache.New("127.0.0.1:11211")
mc.CompareAndSwap(&memcache.Item{Key:"data",
Value:[]byte("你好!")})

封装发给memcached服务器的命令是:cas data 0 0 9 0
主要分为以下步骤:
1、选择一个memcached服务器地址并进行连接
2、向memcached服务器发送数据和处理服务器返回的信息
3、连接结束处理(回收或释放)
CompareAndSwap方法流程图如下,[点击下载]
(https://github.com/laijinhang/go-gomemcache-study/blob/master/CompareAndSwap方法.odg)

webp

image.png


9)func (c *Client) FlushAll() error
用法:
mc := memcache.New("127.0.0.1:11211")
err := mc.FlushAll()

用于清理缓存中的所有 key=>value(键=>值) 对

主要可以分为以下步骤:
1、往每个memcached服务器发送数据和接收处理memcached信息
2、和处理连接
FlushAll方法流程图如下,点击下载

webp

image.png


10)func (c *Client) Replace() error
用法:
mc := memcache.New("127.0.0.1:11211")
err := mc.Replace()
发送replace命令到mecmached服务器,该命令用于替换已存在的
key(键)的value(数据值)。
如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED。

主要可以分为以下步骤:
1、往每个memcached服务器发送数据和接收处理memcached信息
2、和处理连接
Replace方法流程图如下,点击下载

webp



作者:laijh
链接:https://www.jianshu.com/p/308119ccbe32


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP