本文整理汇总了Golang中github.com/garyburd/redigo/redis.Strings函数的典型用法代码示例。如果您正苦于以下问题:Golang Strings函数的具体用法?Golang Strings怎么用?Golang Strings使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Strings函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: getSuggestCandidates
func (rr *Redrec) getSuggestCandidates(user string, max int) ([]string, error) {
similarUsers, err := redis.Strings(rr.rconn.Do("ZRANGE", fmt.Sprintf("user:%s:similars", user), 0, max))
if err != nil {
return nil, err
}
max = len(similarUsers)
args := []interface{}{}
args = append(args, "ztmp", float64(max+1), fmt.Sprintf("user:%s:items", user))
weights := []interface{}{}
weights = append(weights, "WEIGHTS", -1.0)
for _, simuser := range similarUsers {
args = append(args, fmt.Sprintf("user:%s:items", simuser))
weights = append(weights, 1.0)
}
args = append(args, weights...)
args = append(args, "AGGREGATE", "MIN")
_, err = rr.rconn.Do("ZUNIONSTORE", args...)
if err != nil {
return nil, err
}
candidates, err := redis.Strings(rr.rconn.Do("ZRANGEBYSCORE", "ztmp", 0, "inf"))
if err != nil {
return nil, err
}
_, err = rr.rconn.Do("DEL", "ztmp")
if err != nil {
return nil, err
}
return candidates, nil
}
开发者ID:RedisLabs,项目名称:redis-recommend,代码行数:35,代码来源:engine.go
示例2: getJobs
func getJobs() (jobs map[string]*CronJob, err error) {
jobs = make(map[string]*CronJob)
var jobKeys []string
var jobData []string
jobKeys, err = redis.Strings(RedisConn.Do("SMEMBERS", "cronstalk:jobs"))
if err != nil {
log.Println("error updating jobs from redis")
return
}
for _, key := range jobKeys {
jobData, err = redis.Strings(RedisConn.Do("HGETALL", key))
if err != nil {
log.Printf("error getting job \"%s\": %s\n", key, err)
continue
}
job, err := NewJob(key, jobData)
if err != nil {
log.Printf("error creating job %s\n", key)
continue
}
jobs[key] = job
}
return
}
开发者ID:jbardin,项目名称:cronstalk,代码行数:28,代码来源:cronstalk.go
示例3: TestFlushDb
func TestFlushDb(t *testing.T) {
c := NewFakeRedis()
redis.String(c.Do("SET", "foo", "bar"))
assertStrings(t, must(redis.Strings(c.Do("KEYS", "foo"))).([]string), []string{"foo"}, false)
c.Do("FLUSHDB")
assertStrings(t, must(redis.Strings(c.Do("KEYS", "foo"))).([]string), []string{}, false)
}
开发者ID:gmlexx,项目名称:redigomock,代码行数:7,代码来源:fake_test.go
示例4: update
func (s Similars) update(user User) error {
items, err := redis.Strings(s.e.c.Do("SUNION", fmt.Sprintf("%s:%s:%s", s.e.class, user, s.e.Likes.kind), fmt.Sprintf("%s:%s:%s", s.e.class, user, s.e.Dislikes.kind)))
if err != nil && err != redis.ErrNil {
return err
}
args := []interface{}{}
for _, item := range items {
args = append(args, fmt.Sprintf("%s:%s:%s", s.e.class, item, s.e.Likes.kind))
args = append(args, fmt.Sprintf("%s:%s:%s", s.e.class, item, s.e.Dislikes.kind))
}
users, err := redis.Strings(s.e.c.Do("SUNION", args...))
if err != nil && err != redis.ErrNil {
return err
}
for _, other := range users {
if other != string(user) {
v, err := s.Jaccard(user, User(other))
if err != nil {
return err
}
_, err = s.e.c.Do("ZADD", fmt.Sprintf("%s:%s:similars", s.e.class, user), v, other)
if err != nil {
return err
}
}
}
return nil
}
开发者ID:arvinkx,项目名称:too,代码行数:31,代码来源:similars.go
示例5: GetUserDevices
func GetUserDevices(userId int64) ([]int64, error) {
r := Redix[_GetUserDevices]
RedixMu[_GetUserDevices].Lock()
defer RedixMu[_GetUserDevices].Unlock()
var idStrs []string //字串类型的设备数组
hostId, err := redis.String(r.Do("hget", "user:family", userId))
//hostId为空说明此用户为孤儿
if err != nil || hostId == "" {
idStrs, _ = redis.Strings(r.Do("smembers", fmt.Sprintf(RedisUserDevices, userId)))
} else {
mems, _ := redis.Strings(r.Do("smembers", fmt.Sprintf("family:%v", hostId)))
for _, m := range mems {
devs, err := redis.Strings(r.Do("smembers", fmt.Sprintf(RedisUserDevices, m)))
if err == nil && len(devs) > 0 {
idStrs = append(idStrs, devs...)
}
}
}
bindedIds := make([]int64, 0, len(idStrs))
for _, v := range idStrs {
id, err := strconv.ParseInt(v, 10, 64)
if err != nil {
continue
}
bindedIds = append(bindedIds, id)
}
return bindedIds, nil
}
开发者ID:ljvblfz,项目名称:slot-golang,代码行数:28,代码来源:redis.go
示例6: GetFullErrorHistory
func (d *dataAccess) GetFullErrorHistory() (map[string][]*models.AlertError, error) {
defer collect.StartTimer("redis", opentsdb.TagSet{"op": "GetFullErrorHistory"})()
conn := d.GetConnection()
defer conn.Close()
alerts, err := redis.Strings(conn.Do("SMEMBERS", alertsWithErrors))
if err != nil {
return nil, err
}
results := make(map[string][]*models.AlertError, len(alerts))
for _, a := range alerts {
rows, err := redis.Strings(conn.Do("LRANGE", errorListKey(a), 0, -1))
if err != nil {
return nil, err
}
list := make([]*models.AlertError, len(rows))
for i, row := range rows {
ae := &models.AlertError{}
err = json.Unmarshal([]byte(row), ae)
if err != nil {
return nil, err
}
list[i] = ae
}
results[a] = list
}
return results, nil
}
开发者ID:mhenderson-so,项目名称:bosun,代码行数:28,代码来源:error_data.go
示例7: GetKeysAndValuesWithFilter
// GetKeysAndValuesWithFilter will return all keys and their values with a filter
func (r *RedisClusterStorageManager) GetKeysAndValuesWithFilter(filter string) map[string]string {
if r.db == nil {
log.Info("Connection dropped, connecting..")
r.Connect()
return r.GetKeysAndValuesWithFilter(filter)
}
searchStr := r.KeyPrefix + r.hashKey(filter) + "*"
log.Debug("[STORE] Getting list by: ", searchStr)
sessionsInterface, err := r.db.Do("KEYS", searchStr)
if err != nil {
log.Error("Error trying to get filtered client keys:")
log.Error(err)
} else {
keys, _ := redis.Strings(sessionsInterface, err)
valueObj, err := r.db.Do("MGET", sessionsInterface.([]interface{})...)
values, err := redis.Strings(valueObj, err)
returnValues := make(map[string]string)
for i, v := range keys {
returnValues[r.cleanKey(v)] = values[i]
}
return returnValues
}
return map[string]string{}
}
开发者ID:coutPKprintf,项目名称:tyk,代码行数:31,代码来源:redis_cluster_handler.go
示例8: newServerState
// TODO: add timeouts
func newServerState() (state *ServerState, err error) {
conn, err := redis.Dial("tcp", "127.0.0.1:6379")
if err != nil {
return
}
defer conn.Close()
urls, err := redis.Strings(conn.Do("SMEMBERS", "urls"))
if err != nil {
return
}
profiles, err := redis.Strings(conn.Do("SMEMBERS", "profiles"))
if err != nil {
return
}
urlProfileWeights, err := getWeights(conn, urls, profiles)
if err != nil {
return
}
state = new(ServerState)
state.urls = urls
state.profiles = profiles
state.urlProfileWeights = urlProfileWeights
return
}
开发者ID:ifn,项目名称:rcm,代码行数:30,代码来源:rcm.go
示例9: Build
// Fetch Txos and Txins
func (tx *Tx) Build(rpool *redis.Pool) (err error) {
c := rpool.Get()
defer c.Close()
tx.TxIns = []*TxIn{}
tx.TxOuts = []*TxOut{}
txinskeys := []interface{}{}
for i := range iter.N(int(tx.TxInCnt)) {
txinskeys = append(txinskeys, fmt.Sprintf("txi:%v:%v", tx.Hash, i))
}
txinsjson, _ := redis.Strings(c.Do("MGET", txinskeys...))
for _, txinjson := range txinsjson {
ctxi := new(TxIn)
err = json.Unmarshal([]byte(txinjson), ctxi)
tx.TxIns = append(tx.TxIns, ctxi)
}
txoutskeys := []interface{}{}
txoutsspentkeys := []interface{}{}
for i := range iter.N(int(tx.TxOutCnt)) {
txoutskeys = append(txoutskeys, fmt.Sprintf("txo:%v:%v", tx.Hash, i))
txoutsspentkeys = append(txoutsspentkeys, fmt.Sprintf("txo:%v:%v:spent", tx.Hash, i))
}
txoutsjson, _ := redis.Strings(c.Do("MGET", txoutskeys...))
txoutsspentjson, _ := redis.Strings(c.Do("MGET", txoutsspentkeys...))
for txoindex, txoutjson := range txoutsjson {
ctxo := new(TxOut)
err = json.Unmarshal([]byte(txoutjson), ctxo)
if txoutsspentjson[txoindex] != "" {
cspent := new(TxoSpent)
err = json.Unmarshal([]byte(txoutsspentjson[txoindex]), cspent)
ctxo.Spent = cspent
}
tx.TxOuts = append(tx.TxOuts, ctxo)
}
return
}
开发者ID:Kefkius,项目名称:btcplex,代码行数:36,代码来源:models.go
示例10: crawl
func crawl(c *command) {
if len(c.flag.Args()) != 0 {
c.printUsage()
os.Exit(1)
}
db, err := database.New()
if err != nil {
log.Fatal(err)
}
conn := db.Pool.Get()
defer conn.Close()
paths, err := redis.Strings(conn.Do("SMEMBERS", "newCrawl"))
if err != nil {
log.Fatal(err)
}
fmt.Println("NEW")
for _, path := range paths {
fmt.Println(path)
}
paths, err = redis.Strings(conn.Do("SMEMBERS", "badCrawl"))
if err != nil {
log.Fatal(err)
}
fmt.Println("BAD")
for _, path := range paths {
fmt.Println(path)
}
}
开发者ID:AlekSi,项目名称:gddo,代码行数:30,代码来源:crawl.go
示例11: GetKeysAndValues
// GetKeysAndValues will return all keys and their values - not to be used lightly
func (r *RedisClusterStorageManager) GetKeysAndValues() map[string]string {
if GetRelevantClusterReference(r.IsCache) == nil {
log.Info("Connection dropped, connecting..")
r.Connect()
return r.GetKeysAndValues()
}
searchStr := r.KeyPrefix + "*"
sessionsInterface, err := GetRelevantClusterReference(r.IsCache).Do("KEYS", searchStr)
if err != nil {
log.Error("Error trying to get all keys:")
log.Error(err)
} else {
keys, _ := redis.Strings(sessionsInterface, err)
valueObj, err := GetRelevantClusterReference(r.IsCache).Do("MGET", sessionsInterface.([]interface{})...)
values, err := redis.Strings(valueObj, err)
m := make(map[string]string)
for i, v := range keys {
m[r.cleanKey(v)] = values[i]
}
return m
}
return map[string]string{}
}
开发者ID:TykTechnologies,项目名称:tyk,代码行数:29,代码来源:redis_cluster_handler.go
示例12: TestHashValues
func TestHashValues(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
s.HSet("wim", "zus", "jet")
s.HSet("wim", "teun", "vuur")
s.HSet("wim", "gijs", "lam")
s.HSet("wim", "kees", "bok")
v, err := redis.Strings(c.Do("HVALS", "wim"))
ok(t, err)
equals(t, 4, len(v))
sort.Strings(v)
equals(t, []string{
"bok",
"jet",
"lam",
"vuur",
}, v)
v, err = redis.Strings(c.Do("HVALS", "nosuch"))
ok(t, err)
equals(t, 0, len(v))
// Wrong key type
s.Set("foo", "bar")
_, err = redis.Int(c.Do("HVALS", "foo"))
assert(t, err != nil, "no HVALS error")
}
开发者ID:Goyoo,项目名称:codis-docker,代码行数:31,代码来源:cmd_hash_test.go
示例13: GetKeysAndValues
// GetKeysAndValues will return all keys and their values - not to be used lightly
func (r *RedisStorageManager) GetKeysAndValues() map[string]string {
db := r.pool.Get()
defer db.Close()
if db == nil {
log.Info("Connection dropped, connecting..")
r.Connect()
return r.GetKeysAndValues()
}
searchStr := r.KeyPrefix + "*"
sessionsInterface, err := db.Do("KEYS", searchStr)
if err != nil {
log.Error("Error trying to get all keys:")
log.Error(err)
} else {
keys, _ := redis.Strings(sessionsInterface, err)
valueObj, err := db.Do("MGET", sessionsInterface.([]interface{})...)
values, err := redis.Strings(valueObj, err)
returnValues := make(map[string]string)
for i, v := range keys {
returnValues[r.cleanKey(v)] = values[i]
}
return returnValues
}
return map[string]string{}
}
开发者ID:leochencipher,项目名称:tyk,代码行数:31,代码来源:storage_handlers.go
示例14: TestHashGetall
func TestHashGetall(t *testing.T) {
s, err := Run()
ok(t, err)
defer s.Close()
c, err := redis.Dial("tcp", s.Addr())
ok(t, err)
s.HSet("wim", "zus", "jet")
s.HSet("wim", "teun", "vuur")
s.HSet("wim", "gijs", "lam")
s.HSet("wim", "kees", "bok")
v, err := redis.Strings(c.Do("HGETALL", "wim"))
ok(t, err)
equals(t, 8, len(v))
d := map[string]string{}
for len(v) > 0 {
d[v[0]] = v[1]
v = v[2:]
}
equals(t, map[string]string{
"zus": "jet",
"teun": "vuur",
"gijs": "lam",
"kees": "bok",
}, d)
v, err = redis.Strings(c.Do("HGETALL", "nosuch"))
ok(t, err)
equals(t, 0, len(v))
// Wrong key type
s.Set("foo", "bar")
_, err = redis.Int(c.Do("HGETALL", "foo"))
assert(t, err != nil, "no HGETALL error")
}
开发者ID:Goyoo,项目名称:codis-docker,代码行数:35,代码来源:cmd_hash_test.go
示例15: TestAuthenticateExcistingUser
func (s *AuthTest) TestAuthenticateExcistingUser() {
entities.Save(&entities.Planet{
Name: "GOP6720",
Position: &vec2d.Vector{2, 2},
})
entities.Save(&entities.Player{
Username: "gophie",
RaceID: 1,
TwitterID: "gop",
HomePlanet: "planet.GOP6720",
ScreenSize: []uint64{1, 1},
ScreenPosition: &vec2d.Vector{2, 2},
})
players_before, err := redis.Strings(s.conn.Do("KEYS", "player.*"))
before := len(players_before)
assert.Nil(s.T(), err)
s.assertSend(&user)
s.assertReceive("server_params")
s.assertReceive("login_success")
players_after, err := redis.Strings(s.conn.Do("KEYS", "player.*"))
after := len(players_after)
assert.Nil(s.T(), err)
assert.Equal(s.T(), before, after)
}
开发者ID:WarCluster,项目名称:warcluster-server,代码行数:28,代码来源:auth_test.go
示例16: findAllUsers
func findAllUsers() []User {
conn := getConn()
defer conn.Close()
keys, err := redis.Strings(conn.Do("KEYS", "*"))
if err != nil {
panic(err)
}
var users = []User{}
for _, key := range keys {
var f []string
f, err = redis.Strings(conn.Do("HGETALL", key))
if err != nil {
panic(err)
}
user := User{Email: key}
for i, v := range f {
if v == "last_assignment" {
user.LastAssignmentTime = f[i+1]
}
if v == "trello_username" {
user.TrelloUsername = f[i+1]
}
}
users = append(users, user)
}
return users
}
开发者ID:jkvor,项目名称:zendesk-trello-importer,代码行数:27,代码来源:users.go
示例17: TestPopNextJobsScript
func TestPopNextJobsScript(t *testing.T) {
testingSetUp()
defer testingTeardown()
// Set up some time parameters
pastTime := time.Now().Add(-10 * time.Millisecond).UTC().UnixNano()
// Set up the database
tx0 := newTransaction()
// One set will mimic the ready and sorted jobs
tx0.command("ZADD", redis.Args{Keys.JobsTimeIndex, pastTime, "two", pastTime, "four"}, nil)
// One set will mimic the queued set
tx0.command("ZADD", redis.Args{StatusQueued.Key(), 1, "one", 2, "two", 3, "three", 4, "four"}, nil)
// One set will mimic the executing set
tx0.command("ZADD", redis.Args{StatusExecuting.Key(), 5, "five"}, nil)
if err := tx0.exec(); err != nil {
t.Errorf("Unexpected error executing transaction: %s", err.Error())
}
// Start a new transaction and execute the script
tx1 := newTransaction()
gotJobs := []*Job{}
testPoolId := "testPool"
tx1.popNextJobs(2, testPoolId, newScanJobsHandler(&gotJobs))
if err := tx1.exec(); err != nil {
t.Errorf("Unexpected error executing transaction: %s", err.Error())
}
gotIds := []string{}
for _, job := range gotJobs {
gotIds = append(gotIds, job.id)
}
// Check the results
expectedIds := []string{"four", "two"}
if !reflect.DeepEqual(expectedIds, gotIds) {
t.Errorf("Ids returned by script were incorrect.\n\tExpected: %v\n\tBut got: %v", expectedIds, gotIds)
}
conn := redisPool.Get()
defer conn.Close()
expectedExecuting := []string{"five", "four", "two"}
gotExecuting, err := redis.Strings(conn.Do("ZREVRANGE", StatusExecuting.Key(), 0, -1))
if err != nil {
t.Errorf("Unexpected error in ZREVRANGE: %s", err.Error())
}
if !reflect.DeepEqual(expectedExecuting, gotExecuting) {
t.Errorf("Ids in the executing set were incorrect.\n\tExpected: %v\n\tBut got: %v", expectedExecuting, gotExecuting)
}
expectedQueued := []string{"three", "one"}
gotQueued, err := redis.Strings(conn.Do("ZREVRANGE", StatusQueued.Key(), 0, -1))
if err != nil {
t.Errorf("Unexpected error in ZREVRANGE: %s", err.Error())
}
if !reflect.DeepEqual(expectedQueued, gotQueued) {
t.Errorf("Ids in the queued set were incorrect.\n\tExpected: %v\n\tBut got: %v", expectedQueued, gotQueued)
}
expectKeyNotExists(t, Keys.JobsTemp)
}
开发者ID:Requilence,项目名称:integram,代码行数:58,代码来源:scripts_test.go
示例18: TestZadd
func TestZadd(t *testing.T) {
c := NewFakeRedis()
c.Do("ZADD", "foo", 4, "four")
c.Do("ZADD", "foo", 3, "three")
assertInt(t, must(redis.Int(c.Do("ZADD", "foo", 2, "two", 1, "one", 0, "zero"))), 3)
assertStrings(t, must(redis.Strings(c.Do("ZRANGE", "foo", 0, -1))).([]string), []string{"zero", "one", "two", "three", "four"}, false)
assertInt(t, must(redis.Int(c.Do("ZADD", "foo", 7, "zero", 1, "one", 5, "five"))), 1)
assertStrings(t, must(redis.Strings(c.Do("ZRANGE", "foo", 0, -1))).([]string), []string{"one", "two", "three", "four", "five", "zero"}, false)
}
开发者ID:gmlexx,项目名称:redigomock,代码行数:9,代码来源:fake_test.go
示例19: TestSUnion
func TestSUnion(t *testing.T) {
c := NewFakeRedis()
c.Do("SADD", "foo", "member1", "member2")
c.Do("SADD", "bar", "member2", "member3")
assertStrings(t, must(redis.Strings(c.Do("SUNION", "empty"))).([]string), []string{}, true)
assertStrings(t, must(redis.Strings(c.Do("SUNION", "foo"))).([]string), []string{"member1", "member2"}, true)
assertStrings(t, must(redis.Strings(c.Do("SUNION", "foo", "empty"))).([]string), []string{"member1", "member2"}, true)
assertStrings(t, must(redis.Strings(c.Do("SUNION", "foo", "bar"))).([]string), []string{"member1", "member2", "member3"}, true)
}
开发者ID:gmlexx,项目名称:redigomock,代码行数:9,代码来源:fake_test.go
示例20: TestSadd
func TestSadd(t *testing.T) {
c := NewFakeRedis()
assertInt(t, must(redis.Int(c.Do("SADD", "foo", "member1"))), 1)
assertInt(t, must(redis.Int(c.Do("SADD", "foo", "member1"))), 0)
assertStrings(t, must(redis.Strings(c.Do("SMEMBERS", "foo"))).([]string), []string{"member1"}, true)
assertInt(t, must(redis.Int(c.Do("SADD", "foo", "member2", "member3"))), 2)
assertStrings(t, must(redis.Strings(c.Do("SMEMBERS", "foo"))).([]string), []string{"member1", "member2", "member3"}, true)
assertInt(t, must(redis.Int(c.Do("SADD", "foo", "member3", "member4"))), 1)
assertStrings(t, must(redis.Strings(c.Do("SMEMBERS", "foo"))).([]string), []string{"member1", "member2", "member3", "member4"}, true)
}
开发者ID:gmlexx,项目名称:redigomock,代码行数:10,代码来源:fake_test.go
注:本文中的github.com/garyburd/redigo/redis.Strings函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论