• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang redis.Bytes函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/garyburd/redigo/redis.Bytes函数的典型用法代码示例。如果您正苦于以下问题:Golang Bytes函数的具体用法?Golang Bytes怎么用?Golang Bytes使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了Bytes函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: Register_lua_db_CachePool_Do

func Register_lua_db_CachePool_Do(L *lua.LState) int {
	ud := L.CheckUserData(1)
	cmd := L.CheckString(2)
	arg1 := L.CheckString(3)
	var value []byte
	var err error
	if v, ok := ud.Value.(*db.CachePool); ok {
		if L.GetTop() == 4 {
			arg2 := L.CheckString(4)
			value, err = redis.Bytes(v.Do(cmd, arg1, arg2))
		} else {
			value, err = redis.Bytes(v.Do(cmd, arg1))
		}
	}
	if err == nil {
		L.Push(lua.LString(string(value)))
		L.Push(lua.LString(""))
	} else {
		if err != nil {
			L.Push(lua.LString(""))
			L.Push(lua.LString(err.Error()))
		} else {
			L.Push(lua.LString(""))
			L.Push(lua.LString("not string type value"))
		}
		logger.Error("Register_lua_db_CachePool_Do Error : %v, %v", value, err)
	}

	return 2
}
开发者ID:bodogbo,项目名称:OSG-Server-Go,代码行数:30,代码来源:lua_db_CachePool_auto.go


示例2: GetUserByName

func GetUserByName(name string) (user *UserInfo, err error) {
	conn := userRedisPool.Get()
	defer conn.Close()
	key := fmt.Sprintf("n_%s", name)
	var val []byte
	if val, err = redis.Bytes(conn.Do("get", key)); err != nil {
		if err == redis.ErrNil {
			err = UserNotExist
			return
		}
		return
	}

	uid := binary.LittleEndian.Uint32(val)
	idkey := fmt.Sprintf("u%d", uid)
	if val, err = redis.Bytes(conn.Do("get", idkey)); err != nil {
		if err == redis.ErrNil {
			err = UserNotExist
			return
		}
		return
	}

	var u UserInfo
	if err = json.Unmarshal(val, &u); err != nil {
		return
	}
	user = &u
	return
}
开发者ID:Joinhack,项目名称:peony,代码行数:30,代码来源:user.go


示例3: ReadPairs

func ReadPairs(reply interface{}) (vals map[string]string, res interface{}, err error) {

	rows, ok := reply.([]interface{})

	if !ok {
		fmt.Println("Result not an []interface{}.")
		return vals, reply, err
	}

	ln := len(rows)

	if ln%2 != 0 {
		fmt.Println("len(rows) is not even: ", ln)
		return vals, reply, err
	}

	count := ln / 2
	vals = make(map[string]string)

	err = nil

	for i := 0; i < count; i++ {
		n := i * 2
		k, err := redis.Bytes(rows[n], err)
		v, err := redis.Bytes(rows[n+1], err)

		if err != nil {
			fmt.Println("Couldn't convert via redis.Bytes(row)")
		}

		vals[string(k)] = string(v)
	}

	return vals, reply, err
}
开发者ID:ryanolsen,项目名称:snb-1,代码行数:35,代码来源:misc.go


示例4: Queues

func (c *Client) Queues(name string) ([]*Queue, error) {
	args := []interface{}{0, "queues", timestamp()}
	if name != "" {
		args = append(args, name)
	}

	byts, err := redis.Bytes(c.Do("qless", args...))
	if err != nil {
		return nil, err
	}

	qr := []*Queue{NewQueue(c)}
	if name == "" {
		err = json.Unmarshal(byts, &qr)
		for _, q := range qr {
			q.cli = c
		}
	} else {
		err = json.Unmarshal(byts, &qr[0])
	}

	if err != nil {
		return nil, err
	}

	return qr, err
}
开发者ID:ngaut,项目名称:goqless,代码行数:27,代码来源:client.go


示例5: GetState

func (problem Problem) GetState(user models.User) (*ProblemState, error) {
	redisC := models.RedisPool.Get()
	defer redisC.Close()

	log.WithFields(log.Fields{
		"user_id":      user.Id,
		"problem_name": problem.Name,
	}).Info("Getting state in Redis")

	stateBytes, err := redis.Bytes(redisC.Do("GET", problem.GetKeyForUser(user)))
	if err == redis.ErrNil {
		return &ProblemState{Status: StatusStarting, StartedAt: time.Now(), EndingAt: time.Now().Add(problem.SolvingTime)}, nil
	}
	if err != nil {
		return nil, err
	}

	var state ProblemState
	pCache := bytes.NewBuffer(stateBytes)
	decCache := gob.NewDecoder(pCache)
	gob.Register(ReverseData{})
	err = decCache.Decode(&state)
	if err != nil {
		return nil, err
	}

	return &state, nil
}
开发者ID:niko3oo,项目名称:lencha,代码行数:28,代码来源:problems.go


示例6: activateUser

func (p *portalAPI) activateUser(res http.ResponseWriter, req *http.Request) {
	vars := mux.Vars(req)
	activationKey := vars["key"]
	r := p.a.redis.Get()
	actJson, err := redis.Bytes(r.Do("GET", "activation:"+activationKey))
	if err != nil {
		if err == redis.ErrNil {
			abort(res, 403, "Invalid or expired activation code.")
			return
		} else {
			abort(res, 500, err.Error())
		}
	}
	act := activationData{}
	json.Unmarshal(actJson, &act)
	if act.Email == "" {
		abort(res, 500, "Invalid activation data.")
		return
	}
	if p.m.ActivateUser(act.Email) != nil {
		abort(res, 500, "Could not activate account: %s", err.Error())
		return
	}
	r.Do("DELETE", "activation:"+activationKey)
	if act.After != "" {
		http.Redirect(res, req, act.After, 302)
	} else {
		res.WriteHeader(http.StatusOK)
		res.Write([]byte("Activation successful. Please return to the login page and log in."))
	}
}
开发者ID:fkluthe,项目名称:apiplexy,代码行数:31,代码来源:portal_api.go


示例7: GetMaterial

func (this *ReqRedisModule) GetMaterial(ads *[]context.AdInfo) (err error) {

	utils.DebugLog.Write("start to get material, ads len[%d]", len(*ads))
	var ids []int64
	for i := 0; i < len(*ads); i++ {
		ids = append(ids, (*ads)[i].Adid)
	}
	var ans []interface{}
	utils.DebugLog.Write("request is [%s]", ids)
	ans, err = this.query(ids)
	if err != nil {
		utils.WarningLog.Write("request redis fail . err[%s]", err.Error())
		return
	}
	var material_tmp jesgoo_protocol.Material
	for i := 0; i < len(ans); i++ {
		tp, err := redis.Bytes(ans[i], nil)
		if err != nil {
			utils.WarningLog.Write("read redis return fail err[%s]", err.Error())
			continue
		}
		err = proto.Unmarshal(tp, &material_tmp)
		if err != nil {
			utils.FatalLog.Write("parse material fail . adid[%d]", (*ads)[i].Adid)
			continue
		}
		err = this.fill_material(&(*ads)[i], &material_tmp)
		if err != nil {
			utils.FatalLog.Write("fill material fail . adid[%d] err[%s]", (*ads)[i].Adid, err.Error())
		}
		//		utils.DebugLog.Write("get material . [%s]", tp)
	}
	err = nil
	return
}
开发者ID:ifzz,项目名称:seller_adptor,代码行数:35,代码来源:redis_material.go


示例8: Get

/*
Get the session for this request from Redis
*/
func (sh *SessionHolder) Get(c web.C, r *http.Request) (*base.Session, error) {
	sessionId := sh.GetSessionId(r)
	if sessionId == "" {
		return nil, base.ErrorSessionNotFound
	}

	conn := c.Env["redis"].(redigo.Conn)

	sess, err := conn.Do("GET", sessionKey(sessionId))
	if err != nil {
		return nil, err
	}
	if sess == nil {
		return nil, base.ErrorSessionNotFound
	}
	sessionBytes, err := redigo.Bytes(sess, err)
	if err != nil {
		return nil, err
	}

	dec := gob.NewDecoder(bytes.NewReader(sessionBytes))
	var session base.Session
	err = dec.Decode(&session)
	if err == nil {
		session.SetId(sessionId)
	}

	return &session, err
}
开发者ID:timisbusy,项目名称:tt_goji_middleware,代码行数:32,代码来源:session.go


示例9: GetCachedEx

/**
 * 缓存一定时间
 */
func (this *RedisPool) GetCachedEx(res interface{}, key string, expire int, f RedisCommondRunner) error {
	c := this.RedisPool().Get()
	// defer c.Close()

	reply, err := redis.Bytes(c.Do("GET", key))
	if err == nil && reply != nil {
		c.Close()
		return json.Unmarshal(reply, res)
	}

	if err = f(); err != nil {
		c.Close()
		return err
	}

	var buf []byte
	if buf, err = json.Marshal(res); err != nil {
		c.Close()
		return err
	}

	_, err = c.Do("SETEX", key, expire, buf)
	if err != nil {
		log.Println("REDIS SETEX", key, "failed", err)
	}

	c.Close()
	return nil
}
开发者ID:wddqing,项目名称:golib,代码行数:32,代码来源:redis.go


示例10: verifyMaster

// verifyMaster verifies that the decided master node has fully transitioned
func verifyMaster(addr, pass string) error {
	// connect to redis in order to verify its state
	r, err := redis.DialURL("redis://"+addr, redis.DialConnectTimeout(config.TimeoutNotReady), redis.DialPassword(pass))
	if err != nil {
		return fmt.Errorf("Failed to reach redis at: '%v'", addr)
	}

	// give redis some time to transition
	timeout := time.After(config.TimeoutMasterWait)

	for {
		select {
		case <-timeout:
			return fmt.Errorf("Timed out waiting for redis to transition to master")
		default:
			// retrieve the redis node's role
			info, err := redis.Bytes(r.Do("INFO", "replication"))
			if err != nil {
				return fmt.Errorf("Failed to get INFO - %v", err)
			}

			// check if node is master
			if strings.Contains(string(info), "role:master") {
				return nil
			}
		}
	}

	// cleanup after ourselves
	r.Close()

	return nil
}
开发者ID:nanopack,项目名称:redundis,代码行数:34,代码来源:redundis.go


示例11: Deq

func Deq(pool *redis.Pool, latch *utee.Throttle, uid interface{}) ([]byte, error) {
	c := pool.Get()
	defer c.Close()
	defer latch.Release()
	for {
		name := qname(uid)
		k, err := redis.String(c.Do("LPOP", name))
		if err != nil && err != redis.ErrNil {
			continue
		}

		if len(k) == 0 {
			break
		}
		b, err := redis.Bytes(c.Do("GET", k))
		if err != nil && err != redis.ErrNil {
			continue
		}
		if b != nil {
			c.Send("DEL", k)
			continue
		}
	}
	i++
	if i%10000 == 0 {
		log.Println("@success:", i)
	}
	return nil, nil
}
开发者ID:xiaotiejiang888,项目名称:goPraticse,代码行数:29,代码来源:main.go


示例12: Do

// Do executes function f for each document in the database.
func (db *Database) Do(f func(*doc.Package, []Package) error) error {
	c := db.Pool.Get()
	defer c.Close()
	keys, err := redis.Values(c.Do("KEYS", "pkg:*"))
	if err != nil {
		return err
	}
	for _, key := range keys {
		p, err := redis.Bytes(c.Do("HGET", key, "gob"))
		if err == redis.ErrNil {
			continue
		}
		if err != nil {
			return err
		}
		p, err = snappy.Decode(nil, p)
		if err != nil {
			return err
		}
		var pdoc doc.Package
		if err := gob.NewDecoder(bytes.NewReader(p)).Decode(&pdoc); err != nil {
			return err
		}
		pkgs, err := db.getSubdirs(c, pdoc.ImportPath, &pdoc)
		if err != nil {
			return err
		}
		if err := f(&pdoc, pkgs); err != nil {
			return err
		}
	}
	return nil
}
开发者ID:nvcnvn,项目名称:gopkgdoc,代码行数:34,代码来源:database.go


示例13: Read

func (engine *RedisPoolEngine) Read(key string) (data []byte, err error) {
	c := pool.Get()
	defer c.Close()

	data, err = redis.Bytes(c.Do("GET", key))
	return data, err
}
开发者ID:aozora0000,项目名称:graid,代码行数:7,代码来源:redis_pool_engine.go


示例14: gobm

func gobm(c redis.Conn, m map[string]interface{}) {
	gob.Register(time.Time{})

	var buffer bytes.Buffer
	encoder := gob.NewEncoder(&buffer)

	err := encoder.Encode(m)
	if err != nil {
		panic(err)
	}

	c.Send("MULTI")
	c.Send("SET", "drugs:1", buffer.String())
	c.Send("EXPIRE", "drugs:1", "5")
	r, err := c.Do("EXEC")
	if err != nil {
		panic(err)
	}

	r, err = c.Do("GET", "drugs:1")
	v, err := redis.Bytes(r, err)
	if err != nil {
		panic(err)
	}

	m2 := make(map[string]interface{})
	buffer2 := bytes.NewBuffer(v)
	decoder := gob.NewDecoder(buffer2)
	err = decoder.Decode(&m2)
	if err != nil {
		panic(err)
	}

	// fmt.Printf("%#+v", m2)
}
开发者ID:kdar,项目名称:cachei,代码行数:35,代码来源:coder_test.go


示例15: kmsgpackm

func kmsgpackm(c redis.Conn, m map[string]interface{}) {
	mp := &kmsgpack.Coder{}

	b, err := mp.Marshal(m)
	if err != nil {
		panic(err)
	}

	c.Send("MULTI")
	c.Send("SET", "drugs:1", string(b))
	c.Send("EXPIRE", "drugs:1", "5")
	r, err := c.Do("EXEC")
	if err != nil {
		panic(err)
	}

	r, err = c.Do("GET", "drugs:1")
	v, err := redis.Bytes(r, err)
	if err != nil {
		panic(err)
	}

	m2 := make(map[string]interface{})
	err = mp.Unmarshal(v, &m2)
	if err != nil {
		panic(err)
	}

	// fmt.Printf("%#+v", m2)
}
开发者ID:kdar,项目名称:cachei,代码行数:30,代码来源:coder_test.go


示例16: Restore

func (b *redisBackend) Restore() {
	c := redisPool.Get()
	ctx := b.ctx
	defer c.Close()
	log.Info("redis: restoring ", b.queue)
	t0 := time.Now()

	for {
		if time.Since(t0).Seconds() > 5 {
			log.Info("redis: restoring ...")
			t0 = time.Now()
		}
		reply, err := redis.Bytes(c.Do("RPOP", b.queue))
		if err != nil {
			ctx.restoreDone <- true
			return
		}
		for {
			if ctx.buffering {
				log.Debug("we're buffering, wait restoring..")
				time.Sleep(time.Second)
			} else {
				break
			}
		}
		ctx.parsedLines <- &reply
	}
}
开发者ID:42wim,项目名称:ulog2queue,代码行数:28,代码来源:redis.go


示例17: GetService

func GetService(key string) ([]byte, error) {
	pool := NewPool()
	c := pool.Get()

	result, err := redis.Bytes(c.Do("GET", key))
	return result, err
}
开发者ID:w19900227,项目名称:gooauth,代码行数:7,代码来源:main.go


示例18: Poll

func (this *RedisStore) Poll(c chan []byte, queue string) error {
	go func() {
		consumer, _ := this.GetConn()
		defer this.CloseConn(consumer)
		var err error

		for {
			consumer, err = this.GetConn()
			if err != nil {
				time.Sleep(time.Millisecond * 100)
				continue
			}

			message, err := redis.Bytes(consumer.Do("LPOP", queue))
			this.CloseConn(consumer)

			if err == nil && len(message) > 0 {
				c <- message
			} else {
				time.Sleep(this.pollingFreq)
			}
		}
	}()

	return nil
}
开发者ID:mahtuag,项目名称:incus,代码行数:26,代码来源:redis_store.go


示例19: Get

func (store *RedisStore) Get(id string) (*Session, error) {
	var isNew bool = true
	var values = map[interface{}]interface{}{}

	if len(id) > 0 {
		c := store.pool.Get()

		buf, err := redis.Bytes(c.Do("GET", id))
		c.Close()

		if err != nil && err != redis.ErrNil {
			return nil, err
		}

		if buf != nil {
			values, err = store.codec.Decode(buf)
			if err != nil {
				return nil, err
			}

			isNew = false
		}
	}

	if isNew {
		id = GenerateID()
	}

	s := NewSession(id, store, store.config.MaxAge)

	s.Values = values

	return s, nil
}
开发者ID:holys,项目名称:polaris,代码行数:34,代码来源:redis_store.go


示例20: getGobItem

// getGobItem searches cache by given key from redis and returns Item data
func (c *RedisCache) getGobItem(key string) (*eurekache.Item, bool) {
	conn, err := c.conn()
	if err != nil {
		return nil, false
	}
	defer conn.Close()

	data, err := conn.Do("GET", c.prefix+key)
	if err != nil {
		return nil, false
	}

	b, err := redis.Bytes(data, err)
	if err != nil {
		return nil, false
	}

	var item eurekache.Item
	dec := gob.NewDecoder(bytes.NewBuffer(b))
	err = dec.Decode(&item)
	if err != nil {
		return nil, false
	}

	return &item, true
}
开发者ID:evalphobia,项目名称:eurekache,代码行数:27,代码来源:redis.go



注:本文中的github.com/garyburd/redigo/redis.Bytes函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang redis.Dial函数代码示例发布时间:2022-05-23
下一篇:
Golang redis.Bool函数代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap