本文整理汇总了Golang中github.com/golang/groupcache/lru.New函数的典型用法代码示例。如果您正苦于以下问题:Golang New函数的具体用法?Golang New怎么用?Golang New使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了New函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: NewBranchTileBuilder
// NewBranchTileBuilder returns an instance of BranchTileBuilder that allows
// creating tiles based on the given VCS or code review system based on
// querying db.
//
// TODO(stephana): The EventBus is used to update the internal cache as commits are updated.
func NewBranchTileBuilder(db DB, git *gitinfo.GitInfo, reviewURL string, evt *eventbus.EventBus) BranchTileBuilder {
return &tileBuilder{
db: db,
vcs: git,
review: rietveld.New(reviewURL, util.NewTimeoutClient()),
reviewURL: reviewURL,
cache: lru.New(MAX_ISSUE_CACHE_SIZE),
tcache: lru.New(MAX_TILE_CACHE_SIZE),
}
}
开发者ID:saltmueller,项目名称:skia-buildbot,代码行数:15,代码来源:branch.go
示例2: New
func New(oncecap, twicecap int) *Cache {
c := &Cache{
once: lru.New(oncecap),
twice: lru.New(twicecap),
}
// make sure keys evicted from two make it to the head of one
c.twice.OnEvicted = func(k lru.Key, v interface{}) {
c.once.Add(k, v)
}
return c
}
开发者ID:dgryski,项目名称:trifles,代码行数:11,代码来源:slru.go
示例3: NewTraceServiceServer
// NewTraceServiceServer creates a new DB that stores the data in BoltDB format at
// the given filename location.
func NewTraceServiceServer(filename string) (*TraceServiceImpl, error) {
d, err := bolt.Open(filename, 0600, &bolt.Options{Timeout: 1 * time.Second})
if err != nil {
return nil, fmt.Errorf("Failed to open BoltDB at %s: %s", filename, err)
}
createBuckets := func(tx *bolt.Tx) error {
_, err := tx.CreateBucketIfNotExists([]byte(COMMIT_BUCKET_NAME))
if err != nil {
return fmt.Errorf("Failed to create bucket %s: %s", COMMIT_BUCKET_NAME, err)
}
_, err = tx.CreateBucketIfNotExists([]byte(TRACE_BUCKET_NAME))
if err != nil {
return fmt.Errorf("Failed to create bucket %s: %s", TRACE_BUCKET_NAME, err)
}
_, err = tx.CreateBucketIfNotExists([]byte(TRACEID_BUCKET_NAME))
if err != nil {
return fmt.Errorf("Failed to create bucket %s: %s", TRACEID_BUCKET_NAME, err)
}
return nil
}
if err := d.Update(createBuckets); err != nil {
return nil, fmt.Errorf("Failed to create buckets: %s", err)
}
return &TraceServiceImpl{
db: d,
cache: lru.New(MAX_INT64_ID_CACHED),
}, nil
}
开发者ID:saltmueller,项目名称:skia-buildbot,代码行数:30,代码来源:impl.go
示例4: newPeerStore
func newPeerStore(maxInfoHashes, maxInfoHashPeers int) *peerStore {
return &peerStore{
values: lru.New(maxInfoHashes),
maxInfoHashes: maxInfoHashes,
maxInfoHashPeers: maxInfoHashPeers,
}
}
开发者ID:hlandau,项目名称:dht,代码行数:7,代码来源:util-peerstore.go
示例5: BenchmarkSetGPLRU
func BenchmarkSetGPLRU(b *testing.B) {
plru := lru.New(lruSize)
// run the Fib function b.N times
for n := 0; n < b.N; n++ {
plru.Add("A"+strconv.FormatInt(int64(n), 10), "A")
}
}
开发者ID:nemothekid,项目名称:lrutest,代码行数:7,代码来源:main_test.go
示例6: SaveBlogEditCtr
func (ac *AdminController) SaveBlogEditCtr(c *gin.Context) {
session := sessions.Default(c)
username := session.Get("username")
if username == nil {
(&umsg{"You have no permission", "/"}).ShowMessage(c)
return
}
var BI EditBlogItem
c.BindWith(&BI, binding.Form)
if BI.Aid == "" {
(&umsg{"Can not find the blog been edit", "/"}).ShowMessage(c)
return
}
if BI.Title == "" {
(&umsg{"Title can not empty", "/"}).ShowMessage(c)
return
}
if BI.Content == "" {
(&umsg{"Content can not empty", "/"}).ShowMessage(c)
return
}
_, err := DB.Exec("update top_article set title=?, content=? where aid = ?", BI.Title, BI.Content, BI.Aid)
if err == nil {
Cache = lru.New(8192)
(&umsg{"Success", "/"}).ShowMessage(c)
} else {
(&umsg{"Failed to save blog", "/"}).ShowMessage(c)
}
}
开发者ID:rageshkrishna,项目名称:gosense,代码行数:30,代码来源:admin-controller.go
示例7: NewTraceServiceDB
// NewTraceServiceDB creates a new DB that stores the data in the BoltDB backed
// gRPC accessible traceservice.
func NewTraceServiceDB(conn *grpc.ClientConn, traceBuilder tiling.TraceBuilder) (*TsDB, error) {
ret := &TsDB{
conn: conn,
traceService: traceservice.NewTraceServiceClient(conn),
traceBuilder: traceBuilder,
cache: lru.New(MAX_ID_CACHED),
ctx: context.Background(),
}
// This ping causes the client to try and reach the backend. If the backend
// is down, it will keep trying until it's up.
if err := ret.ping(); err != nil {
return nil, err
}
go func() {
liveness := metrics.NewLiveness("tracedb-ping")
for _ = range time.Tick(time.Minute) {
if ret.ping() == nil {
liveness.Update()
}
}
}()
return ret, nil
}
开发者ID:1394,项目名称:skia-buildbot,代码行数:27,代码来源:db.go
示例8: SaveBlogAddCtr
func (ac *AdminController) SaveBlogAddCtr(c *gin.Context) {
session := sessions.Default(c)
username := session.Get("username")
if username == nil {
(&umsg{"You have no permission", "/"}).ShowMessage(c)
return
}
var BI BlogItem
c.BindWith(&BI, binding.Form)
if BI.Title == "" {
(&umsg{"Title can not empty", "/"}).ShowMessage(c)
return
}
if BI.Content == "" {
(&umsg{"Content can not empty", "/"}).ShowMessage(c)
return
}
_, err := DB.Exec(
"insert into top_article (title, content, publish_time, publish_status) values (?, ?, ?, 1)",
BI.Title, BI.Content, time.Now().Format("2006-01-02 15:04:05"))
if err == nil {
Cache = lru.New(8192)
(&umsg{"Success", "/"}).ShowMessage(c)
} else {
(&umsg{"Failed to save blog", "/"}).ShowMessage(c)
}
}
开发者ID:rageshkrishna,项目名称:gosense,代码行数:28,代码来源:admin-controller.go
示例9: initStmtsLRU
func initStmtsLRU(max int) {
if stmtsLRU.lru != nil {
stmtsLRU.Max(max)
} else {
stmtsLRU.lru = lru.New(max)
}
}
开发者ID:apaoww,项目名称:gocqltable,代码行数:7,代码来源:cluster.go
示例10: Start
// Start initializes the limiter for execution.
func (il *intervalVaryByLimiter) Start() {
if il.bursts < 0 {
il.bursts = 0
}
il.keys = lru.New(il.maxKeys)
il.keys.OnEvicted = il.stopProcess
}
开发者ID:ChrisOHu,项目名称:platform,代码行数:8,代码来源:interval.go
示例11: New
func New(rdb *gorocksdb.DB) *DB {
db := &DB{rdb: rdb}
db.wo = gorocksdb.NewDefaultWriteOptions()
db.ro = gorocksdb.NewDefaultReadOptions()
db.caches = lru.New(1000)
db.RawSet([]byte{MAXBYTE}, nil) // for Enumerator seek to last
return db
}
开发者ID:CowLeo,项目名称:GoRedis,代码行数:8,代码来源:db.go
示例12: newPeerStore
func newPeerStore(maxInfoHashes, maxInfoHashPeers int) *peerStore {
return &peerStore{
infoHashPeers: lru.New(maxInfoHashes),
localActiveDownloads: make(map[InfoHash]bool),
maxInfoHashes: maxInfoHashes,
maxInfoHashPeers: maxInfoHashPeers,
}
}
开发者ID:peterlee2008,项目名称:dht,代码行数:8,代码来源:peer_store.go
示例13: NewSession
// NewSession wraps an existing Node.
func NewSession(p ConnectionPool, c ClusterConfig) *Session {
session := &Session{Pool: p, cons: c.Consistency, prefetch: 0.25, cfg: c}
// create the query info cache
session.routingKeyInfoCache.lru = lru.New(c.MaxRoutingKeyInfo)
return session
}
开发者ID:apaoww,项目名称:gocqltable,代码行数:9,代码来源:session.go
示例14: newStore
func newStore() *Store {
return &Store{
Created: time.Now().UnixNano(),
Streams: lru.New(maxStreams),
Updates: make(chan *Object, 100),
streams: make(map[string]int64),
metadatas: make(map[string]*Metadata),
}
}
开发者ID:asim,项目名称:asl.am.v2,代码行数:9,代码来源:store.go
示例15: NewFileHandler
func NewFileHandler(notFound http.Handler) *FileHandler {
reaper := &Reaper{make(chan Life)}
go reaper.Run()
lockChan := make(chan bool, 1)
lockChan <- true
return &FileHandler{
make(chan string), notFound, reaper, lru.New(32), lockChan}
}
开发者ID:hobinjk,项目名称:haven,代码行数:9,代码来源:filehandler.go
示例16: NewSession
// NewSession wraps an existing Node.
func NewSession(cfg ClusterConfig) (*Session, error) {
//Check that hosts in the ClusterConfig is not empty
if len(cfg.Hosts) < 1 {
return nil, ErrNoHosts
}
maxStreams := 128
if cfg.ProtoVersion > protoVersion2 {
maxStreams = 32768
}
if cfg.NumStreams <= 0 || cfg.NumStreams > maxStreams {
cfg.NumStreams = maxStreams
}
pool, err := cfg.ConnPoolType(&cfg)
if err != nil {
return nil, err
}
//Adjust the size of the prepared statements cache to match the latest configuration
stmtsLRU.Lock()
initStmtsLRU(cfg.MaxPreparedStmts)
stmtsLRU.Unlock()
s := &Session{
Pool: pool,
cons: cfg.Consistency,
prefetch: 0.25,
cfg: cfg,
}
//See if there are any connections in the pool
if pool.Size() > 0 {
s.routingKeyInfoCache.lru = lru.New(cfg.MaxRoutingKeyInfo)
s.SetConsistency(cfg.Consistency)
s.SetPageSize(cfg.PageSize)
if cfg.DiscoverHosts {
s.hostSource = &ringDescriber{
session: s,
dcFilter: cfg.Discovery.DcFilter,
rackFilter: cfg.Discovery.RackFilter,
closeChan: make(chan bool),
}
go s.hostSource.run(cfg.Discovery.Sleep)
}
return s, nil
}
s.Close()
return nil, ErrNoConnectionsStarted
}
开发者ID:thoas,项目名称:gocql,代码行数:58,代码来源:session.go
示例17: NewHandler
func NewHandler() *GODNSHandler {
var (
resolver *Resolver
Cache *MemoryCache
)
resolver = &Resolver{}
Cache = &MemoryCache{lru.New(MAX_CACHES), time.Duration(EXPIRE_SECONDS) * time.Second, MAX_CACHES}
return &GODNSHandler{resolver, Cache}
}
开发者ID:shuyaoyimei,项目名称:dnscache,代码行数:10,代码来源:handler.go
示例18: BenchmarkNotSequentialGPLRU
func BenchmarkNotSequentialGPLRU(b *testing.B) {
plru := lru.New(lruSize)
for i := 0; i < lruSize; i++ {
plru.Add("A"+strconv.FormatInt(int64(i), 10), "A")
}
// run the Fib function b.N times
for n := 1; n <= b.N; n++ {
plru.Get("A" + strconv.FormatInt(int64(lruSize%n), 10))
}
}
开发者ID:nemothekid,项目名称:lrutest,代码行数:10,代码来源:main_test.go
示例19: NewHandler
func NewHandler() *GODNSHandler {
var (
resolver *Resolver
Cache *lru.Cache
)
resolver = &Resolver{}
Cache = lru.New(MAX_CACHES)
return &GODNSHandler{resolver, Cache}
}
开发者ID:netroby,项目名称:dnscache,代码行数:10,代码来源:handler.go
示例20: NewEventAggregator
// NewEventAggregator returns a new instance of an EventAggregator
func NewEventAggregator(lruCacheSize int, keyFunc EventAggregatorKeyFunc, messageFunc EventAggregatorMessageFunc,
maxEvents int, maxIntervalInSeconds int, clock clock.Clock) *EventAggregator {
return &EventAggregator{
cache: lru.New(lruCacheSize),
keyFunc: keyFunc,
messageFunc: messageFunc,
maxEvents: maxEvents,
maxIntervalInSeconds: maxIntervalInSeconds,
clock: clock,
}
}
开发者ID:Q-Lee,项目名称:kubernetes,代码行数:12,代码来源:events_cache.go
注:本文中的github.com/golang/groupcache/lru.New函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论