**第 0003 题:**将 0001 题生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中。

# **第 0003 题:**将 0001 题生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中。

import redis
import string
import random


class MrRedis():
    def __init__(self):
        self.conn = None

    def connection( self ):
        self.conn = redis.Redis(host='0.0.0.0',port=6379,db=2)

    # 列表list 添加数据
    def lpush_redis( self ,k_list):
        for key in k_list:
            self.conn.lpush('key',key)

    # 集合set 添加数据
    def sadd_redis( self,k_list ):
        for key in k_list:
            self.conn.sadd('key',key)

    # 列表list 读取数据
    def lrange_redis( self ):
        k_list = self.conn.lrange('key',0,-1)
        for key in k_list:
            print(key.decode())

    # 集合set 读取数据
    def smembers_redis( self ):
        s = self.conn.smembers('key') #返回的是个集合set
        for key in s:
            print(key.decode())


    def flushdb_redis( self ):
        self.conn.flushdb()

def gen_key(num,len=7):  # num 为生成多少个,len 每个的长度
    result = []
    base_str = string.ascii_letters + string.digits    # 所有的大小写字母和数字
    for i in range(num):  #控制生成多少个
        key_list = [random.choice(base_str) for i in range(len)]  #用列表生成式生成列表
        # print(key_list)
        key_str = ''.join(key_list)         # 将列表用join形成字符串
        # print(key_str)
        result.append(key_str)
    return result



if __name__ == '__main__':
    r = MrRedis()
    r.connection()
    r.flushdb_redis()
    key_list = gen_key(200)
    # 列表list  可以重复添加
    # r.push_redis(key_list)
    # r.lrange_redis()
    # 集合set(每个元素都是唯一,不能重复添加) 
    r.sadd_redis(key_list)
    r.smembers_redis()




发布了60 篇原创文章 · 获赞 41 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_24822271/article/details/102605783