内容简介:一个缓存系统,memcached的golang版本,这里先了解一下使用方式
一个缓存系统,memcached的golang版本,这里先了解一下使用方式
使用示例
- groupcache由于是框架,需要导入在编写业务代码才能运作
- 缓存方式可自定义:db,文件等
type TblCache struct { Id int Key string Value string } func main() { //定义节点数量以及地址 peers_addrs := []string{"http://127.0.0.1:8001", "http://127.0.0.1:8002"} db, _ := sql.Open("sqlite3", "./console.db") if len(os.Args) != 2 { fmt.Println("\r\n Usage local_addr \t\n local_addr must in(127.0.0.1:8001,127.0.0.1:8002)\r\n") os.Exit(1) } local_addr := os.Args[1] peers := groupcache.NewHTTPPool("http://" + local_addr) peers.Set(peers_addrs...) // 获取group对象 image_cache := groupcache.NewGroup("testGroup", 8<<30, // 自定义数据获取来源 groupcache.GetterFunc( func(ctx groupcache.Context, key string, dest groupcache.Sink) error { rows, _ := db.Query("SELECT key, value FROM tbl_cache_map where key = ?", key) for rows.Next(){ p := new(TblCache) err := rows.Scan(&p.Key, &p.Value) if err != nil { fmt.Println(err) } fmt.Printf("get %s of value from tbl_cache_map\n",key) dest.SetString("tbl_cache_map.value : " + p.Value) } return nil })) // 定义返回方式 http.HandleFunc("/get", func(rw http.ResponseWriter, r *http.Request) { var data []byte k := r.URL.Query().Get("key") fmt.Printf("user get %s of value from groupcache\n", k) image_cache.Get(nil, k, groupcache.AllocatingByteSliceSink(&data)) rw.Write([]byte(data)) }) log.Fatal(http.ListenAndServe(local_addr, nil)) }
- groupcache.NewGroup() 获取group对象
- groupcache.GetterFunc() 定义数据缓存方式
- http.HandleFunc() 定义返回方式
缓存数据库数据
-
创建一张tbl_cache_map表格用于测试</br>
1.png
- 先启动两个节点
TestProject.exe 127.0.0.1:8001 TestProject.exe 127.0.0.1:8002
-
通过url获取key=3在tbl_cache_map中的value值</br>
2.png
-
第一次获取时因为缓存中无key=3的value数据,所以会根据自定义GetterFunc()从数据库中读取</br>
3.png
-
第二次获取时存在key=3的value缓存,所以直接从groupcache缓存中读取</br>
4.png
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- JMeter使用示例
- 枚举的使用示例
- react-thunk demo使用示例(初步使用)
- Pytest-selenium简单使用示例
- 使用sql语句创建和删除约束示例代码
- Python函数装饰器的使用示例分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
统计思维:程序员数学之概率统计
Allen B.Downey / 张建锋、陈钢 / 人民邮电出版社 / 2013-5 / 29.00元
代码跑出来的概率统计问题; 程序员的概率统计开心辞典; 开放数据集,全代码攻略。 现实工作中,人们常被要求用数据说话。可是,数据自己是不能说话的,只有对它进行可靠分析和深入挖掘才能找到有价值的信息。概率统计是数据分析的通用语言,是大数据时代预测未来的根基。 站在时代浪尖上的程序员只有具备统计思维才能掌握数据分析的必杀技。本书正是一本概率统计方面的入门图书,但视角极为独特,折......一起来看看 《统计思维:程序员数学之概率统计》 这本书的介绍吧!