本文整理汇总了Golang中github.com/garyburd/redigo/redis.String函数的典型用法代码示例。如果您正苦于以下问题:Golang String函数的具体用法?Golang String怎么用?Golang String使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了String函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestDiscardTransaction
func TestDiscardTransaction(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
s.Set("aap", "noot")
b, err := redis.String(c.Do("MULTI"))
ok(t, err)
equals(t, "OK", b)
b, err = redis.String(c.Do("SET", "aap", "mies"))
ok(t, err)
equals(t, "QUEUED", b)
// Not committed
s.CheckGet(t, "aap", "noot")
v, err := redis.String(c.Do("DISCARD"))
ok(t, err)
equals(t, "OK", v)
// TX didn't get executed
s.CheckGet(t, "aap", "noot")
}
开发者ID:Goyoo,项目名称:codis-docker,代码行数:27,代码来源:cmd_transactions_test.go
示例2: Register
func (u *User) Register(args *User_RegisterArgs, reply *Reply) error {
if args.Psw == "" {
reply.Code = com.E_AgentPasswordCannotBeNull
} else {
accountkey := k_account_user_ + args.Account
account, _ := redis.String(u.c.Do("GET", accountkey))
// exists, _ := redis.Bool(u.c.Do("EXISTS", accountkey))
// if !exists {
if account == "" {
// create id
u.c.Do("INCR", k_account_count)
id, _ := redis.String(u.c.Do("GET", k_account_count))
// save account
u.c.Do("SET", accountkey, id)
u.c.Do("SADD", k_account_userlist, id)
// save user
userkey := k_user_ + string(id)
u.c.Do("HSET", userkey, k_psw, args.Psw)
u.c.Do("HSET", userkey, k_coin, 0)
u.c.Do("HSET", userkey, k_nickname, "nickname")
reply.Code = com.E_Success
log.Debug("Register success")
} else {
reply.Code = com.E_AgentAccountExist
log.Debug("E_AgentAccountExist")
}
}
return nil
}
开发者ID:lkj01010,项目名称:chesssrv,代码行数:32,代码来源:user.go
示例3: TestLlen
func TestLlen(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
s.Push("l", "aap", "noot", "mies", "vuur")
{
el, err := redis.Int(c.Do("LLEN", "l"))
ok(t, err)
equals(t, 4, el)
}
// Non exising key
{
el, err := redis.Int(c.Do("LLEN", "nonexisting"))
ok(t, err)
equals(t, 0, el)
}
// Wrong type of key
{
_, err := redis.String(c.Do("SET", "str", "value"))
ok(t, err)
_, err = redis.Int(c.Do("LLEN", "str"))
assert(t, err != nil, "LLEN error")
// Too many arguments
_, err = redis.String(c.Do("LLEN", "too", "many"))
assert(t, err != nil, "LLEN error")
}
}
开发者ID:Goyoo,项目名称:codis-docker,代码行数:33,代码来源:cmd_list_test.go
示例4: GetDeviceUsers
func GetDeviceUsers(deviceId int64) ([]int64, error) {
r := Redix[_GetDeviceUsers]
RedixMu[_GetDeviceUsers].Lock()
defer RedixMu[_GetDeviceUsers].Unlock()
user, err := redis.String(r.Do("hget", RedisDeviceUsers, deviceId))
if err != nil {
return nil, err
}
host, err2 := redis.String(r.Do("hget", "user:family", user))
//如果找不到host,说明此用户是孤儿,那么只返回此设备的直接关联用户
//如果找到host,就返回此设备直接关联用户所属家庭所有成员
if host == "" || err2 != nil {
bindedIds := make([]int64, 0, 1)
u_id, _ := strconv.ParseInt(user, 10, 64)
bindedIds = append(bindedIds, int64(u_id))
return bindedIds, nil
} else {
mems, _ := redis.Strings(r.Do("smembers", fmt.Sprintf("family:%v", host)))
bindedIds := make([]int64, 0, len(mems))
for _, m := range mems {
u_id, err := strconv.ParseInt(m, 10, 64)
if err == nil {
bindedIds = append(bindedIds, int64(u_id))
}
}
return bindedIds, nil
}
}
开发者ID:ljvblfz,项目名称:slot-golang,代码行数:28,代码来源:redis.go
示例5: TestRpop
func TestRpop(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
s.Push("l", "aap", "noot", "mies")
// Simple pops.
{
el, err := redis.String(c.Do("RPOP", "l"))
ok(t, err)
equals(t, "mies", el)
el, err = redis.String(c.Do("RPOP", "l"))
ok(t, err)
equals(t, "noot", el)
el, err = redis.String(c.Do("RPOP", "l"))
ok(t, err)
equals(t, "aap", el)
// Last element has been popped. Key is gone.
i, err := redis.Int(c.Do("EXISTS", "l"))
ok(t, err)
equals(t, 0, i)
// Can pop non-existing keys just fine.
v, err := c.Do("RPOP", "l")
ok(t, err)
equals(t, nil, v)
}
}
开发者ID:Goyoo,项目名称:codis-docker,代码行数:34,代码来源:cmd_list_test.go
示例6: AddUser
func AddUser(user *UserInfo) (rs uint32, err error) {
conn := userRedisPool.Get()
defer conn.Close()
var nkey string = fmt.Sprintf("n_%s", user.Name)
var exist bool
var seq int64
if seq, err = redis.Int64(conn.Do("incr", UserIdSeq)); err != nil {
return
}
if exist, err = redis.Bool(conn.Do("exists", nkey)); err != nil {
return
}
if exist {
err = UserExists
return
}
var buf = make([]byte, 4)
binary.LittleEndian.PutUint32(buf, uint32(seq))
if _, err = redis.String(conn.Do("set", nkey, buf)); err != nil {
return
}
rs = uint32(seq)
user.Id = rs
key := fmt.Sprintf("u%d", rs)
var val []byte
if val, err = json.Marshal(user); err != nil {
return
}
if _, err = redis.String(conn.Do("set", key, val)); err != nil {
return
}
return
}
开发者ID:Joinhack,项目名称:peony,代码行数:33,代码来源:user.go
示例7: getJsonChecks
// Return a JSON with the ids and names of the Pingdom checks
func getJsonChecks(redisResponse []interface{}) []byte {
conn := redisPool.Get() // Redis connection to get the names for the ids
checks := make([]CheckType, len(redisResponse))
for k, _ := range redisResponse {
v := ""
redisResponse, _ = redis.Scan(redisResponse, &v)
id, _ := strconv.ParseInt(v, 10, 64)
// Get the name corresponding to the id
n, err := redis.String(conn.Do("GET", "check:"+v))
for {
if err == nil {
break
} else {
log.Printf("Redis error in GET check: %s\n", err)
n, err = redis.String(conn.Do("GET", "check:"+v))
}
}
checks[k] = CheckType{id, n}
}
conn.Close()
b, _ := json.MarshalIndent(Checks{checks}, "", " ")
return b
}
开发者ID:rhyolight,项目名称:omg-monitor,代码行数:28,代码来源:main.go
示例8: main
func main() {
c, err := redis.Dial("tcp", ":6379")
if err != nil {
log.Fatal(err)
}
defer c.Close()
// SET command only lets you have one value for the key
c.Do("SET", "MY_KEY", "MY_VALUE")
// HSET lets you have multiple fields and values
c.Do("HSET", "myhash", "field1", "Hello")
// myhash = { field1 : "Hello" }
val1, err := redis.String(c.Do("GET", "MY_KEY"))
if err != nil {
fmt.Println("key not found")
}
fmt.Println(val1)
// MY_VALUE
val2, err := redis.String(c.Do("HGET", "myhash", "field1"))
if err != nil {
fmt.Println("key not found")
}
fmt.Println(val2)
// Hello
}
开发者ID:xqbumu,项目名称:learn,代码行数:28,代码来源:01_redis.go
示例9: QPeek
func (c *client) QPeek(queueName string, count int) ([]job, error) {
conn, err := c.get()
if err != nil {
return nil, err
}
reply, err := redis.Values(conn.Do("QPEEK", queueName, count))
if err != nil {
return nil, err
}
result := make([]job, 0, len(reply))
for _, v := range reply {
if value, err := redis.Values(v, nil); err != nil {
return nil, err
} else {
queueName, err := redis.String(value[0], nil)
id, err := redis.String(value[1], err)
data, err := redis.Bytes(value[2], err)
if err != nil {
return nil, err
}
result = append(result, job{QueueName: queueName, Id: id, Body: data})
}
}
return result, nil
}
开发者ID:hirokazumiyaji,项目名称:disgo,代码行数:27,代码来源:disque.go
示例10: Migrate
func Migrate(addr, toIp string, toPort int, key string, timeout int) (string, error) {
inner := func(addr, toIp string, toPort int, key string, timeout int) (string, error) {
conn, err := dial(addr)
if err != nil {
return "", ErrConnFailed
}
defer conn.Close()
resp, err := redis.String(conn.Do("migrate", toIp, toPort, key, 0, timeout))
if err != nil && strings.Contains(err.Error(), "BUSYKEY") {
log.Warningf("Migrate", "Found BUSYKEY '%s', will overwrite it.", key)
resp, err = redis.String(conn.Do("migrate", toIp, toPort, key, 0, timeout, "replace"))
}
if err != nil {
return "", err
}
return resp, nil
}
retry := NUM_RETRY
var err error
var resp string
for retry > 0 {
resp, err = inner(addr, toIp, toPort, key, timeout)
if err == nil {
return resp, nil
}
retry--
}
return "", err
}
开发者ID:ksarch-saas,项目名称:cc,代码行数:30,代码来源:redis.go
示例11: TestSingleKeyRedisCmd
func TestSingleKeyRedisCmd(t *testing.T) {
InitEnv()
c, err := redis.Dial("tcp", "localhost:19000")
if err != nil {
t.Fatal(err)
}
defer c.Close()
_, err = c.Do("SET", "foo", "bar")
if err != nil {
t.Error(err)
}
if got, err := redis.String(c.Do("get", "foo")); err != nil || got != "bar" {
t.Error("'foo' has the wrong value")
}
_, err = c.Do("SET", "bar", "foo")
if err != nil {
t.Error(err)
}
if got, err := redis.String(c.Do("get", "bar")); err != nil || got != "foo" {
t.Error("'bar' has the wrong value")
}
}
开发者ID:jcru,项目名称:codis,代码行数:26,代码来源:router_test.go
示例12: ClusterFailover
func ClusterFailover(addr string, rs *topo.ReplicaSet) (string, error) {
conn, err := dial(addr)
if err != nil {
return "", ErrConnFailed
}
defer conn.Close()
// 先正常Failover试试,如果主挂了再试试Force
resp, err := redis.String(conn.Do("cluster", "failover"))
if err != nil {
if strings.HasPrefix(err.Error(), "ERR Master is down or failed") {
resp, err = redis.String(conn.Do("cluster", "failover", "force"))
}
if err != nil {
return "", err
}
}
// 30s
for i := 0; i < 30; i++ {
info, err := FetchInfo(addr, "Replication")
if err != nil {
return resp, err
}
if info.Get("role") == "slave" {
time.Sleep(1 * time.Second)
} else {
break
}
}
return resp, nil
}
开发者ID:ksarch-saas,项目名称:cc,代码行数:32,代码来源:redis.go
示例13: RandomFortune
// Return a single random Fortune, from a random module
func RandomFortune(mod string) (*Fortune, error) {
conn := Pool.Get()
defer conn.Close()
// ensure the specified module exists
if mod != "" {
member, err := redis.Bool(conn.Do("SISMEMBER", MODS_KEY, mod))
if err != nil {
return nil, err
}
if member == false {
return nil, errors.New(fmt.Sprintf("module '%s' not found", mod))
}
}
if mod == "" {
mod2, err := redis.String(conn.Do("SRANDMEMBER", MODS_KEY))
if err != nil {
return nil, err
}
mod = mod2
}
fid, err := redis.Int(conn.Do("SRANDMEMBER", modKey(mod)))
if err != nil {
return nil, err
}
text, err := redis.String(conn.Do("GET", fortuneKey(fid)))
if err != nil {
return nil, err
}
return &Fortune{mod: mod, id: fid, text: text}, nil
}
开发者ID:noise,项目名称:fortune-redis-go,代码行数:36,代码来源:rfortune.go
示例14: TestSelect
func TestSelect(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
_, err = redis.String(c.Do("SET", "foo", "bar"))
ok(t, err)
_, err = redis.String(c.Do("SELECT", "5"))
ok(t, err)
_, err = redis.String(c.Do("SET", "foo", "baz"))
ok(t, err)
// Direct access.
got, err := s.Get("foo")
ok(t, err)
equals(t, "bar", got)
s.Select(5)
got, err = s.Get("foo")
ok(t, err)
equals(t, "baz", got)
// Another connection should have its own idea of the db:
c2, err := redis.Dial("tcp", s.Addr())
ok(t, err)
v, err := redis.String(c2.Do("GET", "foo"))
ok(t, err)
equals(t, "bar", v)
}
开发者ID:insionng,项目名称:xcodis,代码行数:32,代码来源:cmd_connection_test.go
示例15: TestConnMux
func TestConnMux(t *testing.T) {
c, err := redistest.Dial()
if err != nil {
t.Fatalf("error connection to database, %v", err)
}
m := redisx.NewConnMux(c)
defer m.Close()
c1 := m.Get()
c2 := m.Get()
c1.Send("ECHO", "hello")
c2.Send("ECHO", "world")
c1.Flush()
c2.Flush()
s, err := redis.String(c1.Receive())
if err != nil {
t.Fatal(err)
}
if s != "hello" {
t.Fatalf("echo returned %q, want %q", s, "hello")
}
s, err = redis.String(c2.Receive())
if err != nil {
t.Fatal(err)
}
if s != "world" {
t.Fatalf("echo returned %q, want %q", s, "world")
}
c1.Close()
c2.Close()
}
开发者ID:davidsoloman,项目名称:beats,代码行数:31,代码来源:connmux_test.go
示例16: TestAuthCmd
func (s *testProxyRouterSuite) TestAuthCmd(c *C) {
if len(proxyAuth) > 0 {
cc, err := redis.Dial("tcp", proxyAddr)
c.Assert(err, IsNil)
_, err = cc.Do("SET", "foo", "bar")
c.Assert(err, NotNil)
c.Assert(err, ErrorMatches, "ERR NOAUTH Authentication required")
} else {
cc, err := redis.Dial("tcp", proxyAddr)
c.Assert(err, IsNil)
_, err = cc.Do("SET", "foo", "bar")
c.Assert(err, IsNil)
}
cc, err := redis.Dial("tcp", proxyAddr)
c.Assert(err, IsNil)
ok, err := redis.String(cc.Do("AUTH", proxyAuth))
c.Assert(err, IsNil)
c.Assert(ok, Equals, "OK")
_, err = cc.Do("SET", "foo", "bar")
c.Assert(err, IsNil)
ok, err = redis.String(cc.Do("AUTH", "Wrong-auth-key"))
c.Assert(err, NotNil)
c.Assert(err, ErrorMatches, "ERR invalid auth")
c.Assert(ok, Equals, "")
s.s1.store.Reset()
s.s2.store.Reset()
}
开发者ID:IceiceFire,项目名称:reborn,代码行数:34,代码来源:router_test.go
示例17: TestSimpleTransaction
// Test simple multi/exec block.
func TestSimpleTransaction(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
b, err := redis.String(c.Do("MULTI"))
ok(t, err)
equals(t, "OK", b)
b, err = redis.String(c.Do("SET", "aap", 1))
ok(t, err)
equals(t, "QUEUED", b)
// Not set yet.
equals(t, false, s.Exists("aap"))
v, err := redis.Values(c.Do("EXEC"))
ok(t, err)
equals(t, 1, len(redis.Args(v)))
equals(t, "OK", v[0])
// SET should be back to normal mode
b, err = redis.String(c.Do("SET", "aap", 1))
ok(t, err)
equals(t, "OK", b)
}
开发者ID:Goyoo,项目名称:codis-docker,代码行数:29,代码来源:cmd_transactions_test.go
示例18: TestTxWatch
func TestTxWatch(t *testing.T) {
// Watch with no error.
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
s.Set("one", "two")
b, err := redis.String(c.Do("WATCH", "one"))
ok(t, err)
equals(t, "OK", b)
b, err = redis.String(c.Do("MULTI"))
ok(t, err)
equals(t, "OK", b)
b, err = redis.String(c.Do("GET", "one"))
ok(t, err)
equals(t, "QUEUED", b)
v, err := redis.Values(c.Do("EXEC"))
ok(t, err)
equals(t, 1, len(v))
equals(t, []byte("two"), v[0])
}
开发者ID:Goyoo,项目名称:codis-docker,代码行数:26,代码来源:cmd_transactions_test.go
示例19: TestTxQueueErr
func TestTxQueueErr(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
b, err := redis.String(c.Do("MULTI"))
ok(t, err)
equals(t, "OK", b)
b, err = redis.String(c.Do("SET", "aap", "mies"))
ok(t, err)
equals(t, "QUEUED", b)
// That's an error!
_, err = redis.String(c.Do("SET", "aap"))
assert(t, err != nil, "do SET error")
// Thisone is ok again
b, err = redis.String(c.Do("SET", "noot", "vuur"))
ok(t, err)
equals(t, "QUEUED", b)
_, err = redis.String(c.Do("EXEC"))
assert(t, err != nil, "do EXEC error")
// Didn't get EXECed
equals(t, false, s.Exists("aap"))
}
开发者ID:Goyoo,项目名称:codis-docker,代码行数:30,代码来源:cmd_transactions_test.go
示例20: conn
func (rs *RedisStore) conn() (conn redis.Conn, err error) {
if rs.redis == nil {
c, err2 := redis.Dial("tcp", rs.addr)
if err2 != nil {
return nil, err2
}
if rs.logger != nil {
c = redis.NewLoggingConn(c, rs.logger, rs.prefix)
}
if rs.password != "" {
_, authErr := redis.String(c.Do("AUTH", rs.password))
if authErr != nil {
err = authErr
return
}
}
if rs.db != "" {
_, selDbErr := redis.String(c.Do("SELECT", rs.db))
if selDbErr != nil {
err = selDbErr
return
}
}
rs.redis = c
}
return rs.redis, nil
}
开发者ID:sitanshunanda,项目名称:shield,代码行数:27,代码来源:redis.go
注:本文中的github.com/garyburd/redigo/redis.String函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论