Exemplo n.º 1
0
class load_class:
    def __init__(self):
        self.rc = StrictRedisCluster(startup_nodes=config.startup_nodes)
        self.key_num = 1

    def _string(self, num, string_value_len, thread_num):
        key_num = self.key_num
        while key_num <= num:
            key_name = 'string_r_test_' + str(thread_num) + ':00' + str(
                key_num)
            self.rc.set(
                key_name, ''.join(
                    map(lambda xx: (hex(ord(xx))[2:]),
                        os.urandom(int(string_value_len) / 2))))
            key_num += 1

    def _hash(self, num, hash_value_len, thread_num, filed_num):
        key_num = self.key_num
        while key_num <= num:
            key_name = 'hash_r_test_' + str(thread_num) + ':00' + str(key_num)
            _file_num = 1
            filed_set = {}
            while _file_num <= filed_num:
                key_filed = str(_file_num) + ':value_test'
                filed_set[key_filed] = ''.join(
                    map(lambda xx: (hex(ord(xx))[2:]),
                        os.urandom(hash_value_len / 2)))
                _file_num += 1
            self.rc.hmset(key_name, filed_set)
            key_num += 1

    def _set(self, num, set_value_len, thread_num, value_num):
        key_num = self.key_num
        while key_num <= num:
            key_name = 'set_r_test_' + str(thread_num) + ':00' + str(key_num)
            _value_num = 1
            value_set = []
            while _value_num <= value_num:
                self.rc.sadd(
                    key_name, ''.join(
                        map(lambda xx: (hex(ord(xx))[2:]),
                            os.urandom(set_value_len / 2))))
                _value_num += 1
            key_num += 1

    def _list(self, num, list_value_len, thread_num, value_num):
        key_num = self.key_num
        while key_num <= num:
            key_name = 'list_r_test_' + str(thread_num) + ':00' + str(key_num)
            _value_num = 1
            value_set = []
            while _value_num <= value_num:
                self.rc.lpush(
                    key_name, ''.join(
                        map(lambda xx: (hex(ord(xx))[2:]),
                            os.urandom(list_value_len / 2))))
                _value_num += 1
            key_num += 1
Exemplo n.º 2
0
def load(cluster, datapaths):
    print datapaths, "process start"
    rc = StrictRedisCluster(startup_nodes=[REDIS_CONFIG.get(cluster)],
                            decode_responses=True)
    with open(datapaths, 'rb') as csv_file:
        data_reader = csv.reader(csv_file, delimiter="\t")
        for row in data_reader:
            rc.hmset(row[0], {'a': row[1], 'c': row[2], 'd': row[3]})
    print datapaths, "process end"
Exemplo n.º 3
0
class RedisManager:
    def __init__(self, redis_server, pw=None):
        #self.redis_client_ = redis.Redis(host='127.0.0.1', port=9966)
        if pw:
            pool = ClusterConnectionPool(startup_nodes=redis_server, password=pw, skip_full_coverage_check=True, decode_responses=True)
            self.redis_client_ = StrictRedisCluster(connection_pool=pool)
        else:
            pool = ClusterConnectionPool(startup_nodes=redis_server, skip_full_coverage_check=True, decode_responses=True)
            self.redis_client_ = StrictRedisCluster(connection_pool=pool)

    def Set(self, k, v, is_str, expire=None):
        if not is_str:
            v = json.dumps(v)
        return self.redis_client_.set(k, v, ex=expire)

    def Get(self, k):
        return self.redis_client_.get(k)


    def Delete(self, k):
        return self.redis_client_.delete(k)

    def HashMultiSet(self, k, d, expire=None):
        self.redis_client_.hmset(k, d)
        if expire:
            self.redis_client_.expire(k, expire)

    def HashGetAll(self, k):
        return self.redis_client_.hgetall(k)

    def Pushback(self, k, v, expire=None):
        self.redis_client_.rpush(k, v)
        if expire:
            self.redis_client_.expire(k, expire)

    def SetList(self, k, l, expire=None):
        self.redis_client_.rpush(k, *l)
        if expire:
            self.redis_client_.expire(k, expire)

    def SetSet(self, k, v, expire=None):
        self.redis_client_.sadd(k, v)
        if expire:
            self.redis_client_.expire(k, expire)

    def SortSetSet(self, k, v, expire=None):
        self.redis_client_.zadd(k, v[0], v[1])
        if expire:
            self.redis_client_.expire(k, expire)

    def Handle(self):
        return self.redis_client_
Exemplo n.º 4
0
import cPickle   
import time           
from rediscluster import StrictRedisCluster
startup_nodes = [{"host": "127.0.0.1", "port": "7000"}]
rc = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=False)

f = open("/home/smacar-user/Downloads/db.pckl","rb")   
mydict = cPickle.load(f)       
f.close()                    
home=time.time()
for key in mydict:
	field_list=list(range(0,len(mydict[key])))
	val_list=mydict[key].tolist()
	data=dict(zip(field_list,val_list))
	rc.hmset(str(key),data)
	print("end time:",time.time()-home)
	break

Exemplo n.º 5
0
class RedisCluster:
    def __init__(self):
        try:
            self.rc = StrictRedisCluster(startup_nodes=StartupNodesServer,
                                         decode_responses=True)
        except:
            traceback.print_exc()

    def count_keys(self):  # 查询当前库里有多少key
        return self.rc.dbsize()

    def exists_key(self, key):
        return self.rc.exists(key)

    def delete_key(self, key):
        self.rc.delete(key)

    def rename_key(self, key1, key2):
        self.rc.rename(key1, key2)

    # String操作
    def set_key_value(self, key, value):
        self.rc.set(key, value)

    def get_key_value(self, key):  # 没有对应key返回None
        return self.rc.get(key)

    # Hash操作
    def set_hash(self, key, mapping):  # mapping为字典, 已存在key会覆盖mapping
        self.rc.hmset(key, mapping)

    def delete_hash_field(self, key, field):  # 删除hash表中某个字段,无论字段是否存在
        self.rc.hdel(key, field)

    def exists_hash_field(self, key, field):  # 检查hash表中某个字段存在
        return self.rc.hexists(key, field)

    def get_hash_field(self, key, field):  # 获取hash表中指定字段的值, 没有返回None
        return self.rc.hget(key, field)

    def get_hash_all_field(self, key):  # 获取hash表中指定key所有字段和值,以字典形式,没有key返回空字典
        return self.rc.hgetall(key)

    def increase_hash_field(self, key, field,
                            increment):  # 为hash表key某个字段的整数型值增加increment
        self.rc.hincrby(key, field, increment)

    # List操作
    def rpush_into_lst(self, key, value):  # url从头至尾入列
        self.rc.rpush(key, value)

    def lpush_into_lst(self, key, value):  # url从尾至头入列
        self.rc.lpush(key, value)

    def lpop_lst_item(self, key):  # 从头取出列表第一个元素,没有返回None
        return self.rc.lpop(key)

    def blpop_lst_item(
            self, key):  # 从头取出列表第一个元素(元组形式,值为元祖[1], 元祖[0]为key名),并设置超时,超时返回None
        return self.rc.blpop(key, timeout=1)

    def rpop_lst_item(self, key):  # 从尾取出列表最后一个元素,没有返回None
        return self.rc.rpop(key)

    def brpop_lst_item(
            self,
            key):  # 从尾取出列表最后一个元素(元组形式,值为元祖[1], 元祖[0]为key名),并设置超时,超时返回None
        return self.rc.brpop(key, timeout=1)

    # Set操作
    def add_set(self, key, value):
        self.rc.sadd(key, value)

    def is_member(self, key, value):
        return self.rc.sismember(key, value)

    def pop_member(self, key):  # 随机移除一个值并返回该值,没有返回None
        return self.rc.spop(key)

    def pop_members(self, key, num):  # 随机取出num个值(非移除),列表形式返回这些值,没有返回空列表
        return self.rc.srandmember(key, num)

    def remove_member(self, key, value):  # 移除集合中指定元素
        self.rc.srem(key, value)

    def get_all_members(self, key):  # 返回集合中全部元素,不删除
        return self.rc.smembers(key)

    def remove_into(self, key1, key2, value):  # 把集合key1中value元素移入集合key2中
        self.rc.smove(key1, key2, value)

    def count_members(self, key):  # 计算集合中成员数量
        return self.rc.scard(key)