From 6cda230ebfe09245994a261992d65e1c873a2941 Mon Sep 17 00:00:00 2001 From: duanhf2012 Date: Fri, 3 Jan 2020 11:17:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sysmodule/RedisModule.go | 41 ++++++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/sysmodule/RedisModule.go b/sysmodule/RedisModule.go index fd37a58..3412be8 100644 --- a/sysmodule/RedisModule.go +++ b/sysmodule/RedisModule.go @@ -1194,6 +1194,21 @@ func (slf *RedisModule) ZRange(key string, start, stop int, ascend bool, withSco return makeListJson(reply.([]interface{}), withScores), nil } +//获取有序集合长度 +func (slf *RedisModule) Zcard(key string) (int, error) { + conn, err := slf.getConn() + if err != nil { + return 0, err + } + defer conn.Close() + + reply, err := conn.Do("ZCARD", key) + if err != nil { + return 0, err + } + return int(reply.(int64)), nil +} + //["123","234"] func makeListJson(redisReply []interface{}, withScores bool) []byte { var buf bytes.Buffer @@ -1417,24 +1432,23 @@ func (slf *RedisModule) ListPop(key string, fromLeft, block bool, timeout int) ( return b, nil } - func (slf *RedisModule) HincrbyHashInt(redisKey, hashKey string, value int) error { if redisKey == "" || hashKey == "" { - return errors.New("Key Is Empty") + return errors.New("Key Is Empty") } conn, err := slf.getConn() if err != nil { - return err + return err } defer conn.Close() - + _, retErr := conn.Do("HINCRBY", redisKey, hashKey, value) if retErr != nil { - service.GetLogger().Printf(service.LEVER_ERROR, "HincrbyHashInt fail,reason:%v", retErr) + service.GetLogger().Printf(service.LEVER_ERROR, "HincrbyHashInt fail,reason:%v", retErr) } - + return retErr - } +} func (slf *RedisModule) EXPlREInsert(key string, TTl int) error { conn, err := slf.getConn() @@ -1449,4 +1463,15 @@ func (slf *RedisModule) HincrbyHashInt(redisKey, hashKey string, value int) erro return err } return nil - } \ No newline at end of file + } + +func (slf *RedisModule) Zremrangebyrank(redisKey string, start, end interface{}) (int, error) { + conn, err := slf.getConn() + if err != nil { + return 0, err + } + defer conn.Close() + + reply, err := conn.Do("ZREMRANGEBYRANK", redisKey, start, end) + return redis.Int(reply, err) +}