本文整理汇总了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;未经允许,请勿转载。 |
请发表评论