精华内容
下载资源
问答
  • #导包 import time import sys import re from rediscluster import RedisCluster #这里为集群节点及端口相关信息 redis_basis_conn=[{...#根据业务需要删除数据,这里为读取shell脚本传入日期参数给python,一边模糊

    #导包
    import time
    import sys
    import re
    from rediscluster import RedisCluster

    #这里为集群节点及端口相关信息
    redis_basis_conn=[{“host”:“192.168.1.1”,“port”:9527}{“host”:“192.168.1.1”,“port”:9527},{“host”:“192.168.1.1”,“port”:9527}]

    #根据业务需要删除数据,这里为读取shell脚本传入日期参数给python,一边模糊查询key
    lastmonth = sys.argv[1]

    #做一个简单的 入参判断,很重要,防止清空所有key
    if(lastmonth != “” and re.search(’\d{6}’,lastmonth)):

    #获取redis集群,这里password参数为你自己的redis集群节点密码
    rs= RedisCluster(password=‘mima’,startup_nodes=redis_basis_conn, decode_responses=True, skip_full_coverage_check=True)

    #模糊搜索
    keys = r.scan_iter(match=f"*{lastmonth}")
    for key in keys:
    print(f"delete key :{key}")
    rs.delete(f"{key}")
    else :
    print(“你好,月份不符合规则程序强制终止”)
    break

    #shell部分

    #!/bin/bash
    lastmonth = (date"+today=(date "+%Y%m" -d "-1 month") today=(date “+%Y%m%d”)
    echo $lastmonth

    python3 Redis_del.py KaTeX parse error: Expected group after '_' at position 31: …./log/redis_del_̲{today}.logs

    展开全文
  • hash是一个键值对集合,是string类型的field和value的映射表,有设...用Python操作Redis,可以操作各种数据类型。Redis设置主从可以提高系统的容灾性,有很多特性,先修改配置文件,再开启服务,最后客户端数据读写。

    一、Redis-Hash类型

    hash是一个键值对集合。
    hash是一个string类型的field和value的映射表,hash特别适合存储对象

    1.hset/hget/hmset/hmget/hgetall/hdel

    意义分别是:
    设值/取值/设值多个值/取多个值/取全部值/删除值
    测试如下:

    127.0.0.1:6379> keys *
     1) "l3"
     2) "name"
     3) "age"
     4) "data"
     5) "l4"
     6) "proxies"
     7) "first"
     8) "l1"
     9) "l2"
    10) "num"
    127.0.0.1:6379> hset user id 1
    (integer) 1
    127.0.0.1:6379> hget user id
    "1"
    127.0.0.1:6379> hset user name corley
    (integer) 1
    127.0.0.1:6379> hget user name
    "corley"
    127.0.0.1:6379> hset user id 2
    (integer) 0
    127.0.0.1:6379> hget user id
    "2"
    127.0.0.1:6379> hgetall user
    1) "id"
    2) "2"
    3) "name"
    4) "corley"
    127.0.0.1:6379> hmset users id 1 name corley sex 1
    OK
    127.0.0.1:6379> hmget users id name sex
    1) "1"
    2) "corley"
    3) "1"
    127.0.0.1:6379> hgetall users
    1) "id"
    2) "1"
    3) "name"
    4) "corley"
    5) "sex"
    6) "1"
    127.0.0.1:6379> hdel user id
    (integer) 1
    127.0.0.1:6379> hgetall user
    1) "name"
    2) "corley"
    127.0.0.1:6379> hdel user name
    (integer) 1
    127.0.0.1:6379> hgetall user
    (empty list or set)
    

    get *会发现之前的值都还在,这是Redis使用持久化技术将数据保存到了本地磁盘,查看Redis目录,可以看到有一个文件dump.rdb,就是用于保存数据的。
    键可以重复,重复时会覆盖,但是在使用时应该尽量避免使用重复的键。

    2.hlen

    获取哈希长度。
    测试如下:

    127.0.0.1:6379> type users
    hash  
    127.0.0.1:6379> hlen users
    (integer) 3                                   
    

    3.hexists key

    判断key里面的某个值是否存在,存在返回1 ,不存在返回0。
    测试如下:

    127.0.0.1:6379> hexists users id
    (integer) 1
    127.0.0.1:6379> hexists users height
    (integer) 0
    

    4.hkeys/hvals

    列举出所有的key和value。
    测试如下:

    127.0.0.1:6379> hkeys users          
    1) "id"                              
    2) "name"                            
    3) "sex"                             
    127.0.0.1:6379> hvals users          
    1) "1"                               
    2) "corley"                          
    3) "1"                               
    

    二、Redis-Set类型

    set是string类型的无序集合。
    和普通的集合一样,Set中不存在不重复的值。

    1.sadd/smembers/sismember

    表示添加/查看集合/查看是否存在
    举例:

    sadd set01 1 2 2 3 3 去掉重复添加
    smembers set01 得到set01的所有元素
    sismember set01 1 如果存在返回1,不存在返回0

    测试如下:

    127.0.0.1:6379> sadd se 1 2 2 3 3 4
    (integer) 4
    127.0.0.1:6379> smembers se
    1) "1"
    2) "2"
    3) "3"
    4) "4"
    127.0.0.1:6379> sismember se 2
    (integer) 1
    127.0.0.1:6379> sismember se 5
    (integer) 0
    

    2.scard

    获取集合里面的元素个数。
    测试如下:

    127.0.0.1:6379> scard se
    (integer) 4
    

    3.srem key value

    删除集合中元素。
    测试如下:

    127.0.0.1:6379> srem se 3
    (integer) 1
    127.0.0.1:6379> smembers se
    1) "1"
    2) "2"
    3) "4"
    127.0.0.1:6379> srem se 5
    (integer) 0
    

    4.srandmember key

    随机返回数据。
    测试如下:

    127.0.0.1:6379> srandmember se
    "1"                           
    127.0.0.1:6379> srandmember se
    "2"                           
    127.0.0.1:6379> srandmember se
    "4"                           
    127.0.0.1:6379> srandmember se
    "2"                           
    127.0.0.1:6379> srandmember se
    "2"                           
    127.0.0.1:6379> srandmember se
    "1"                           
    127.0.0.1:6379> smembers se   
    1) "1"                        
    2) "2"                        
    3) "4"                        
    

    5.spop key

    随机弹出元素。
    测试如下:

    127.0.0.1:6379> spop se
    "2"
    127.0.0.1:6379> spop se
    "4"
    127.0.0.1:6379> spop se
    "1"
    127.0.0.1:6379> sadd se1 1 7 5 3 2 4 7
    (integer) 6
    127.0.0.1:6379> spop se1
    "7"
    127.0.0.1:6379> spop se1
    "3"
    127.0.0.1:6379> spop se1
    "2"
    127.0.0.1:6379> smembers se1
    1) "1"
    2) "4"
    3) "5"
    

    6.smove key1 key2

    移动元素。
    举例说明:

    smove set01 set03 2 将set01中的2 移动到set03中

    测试如下:

    127.0.0.1:6379> smove se1 se 1
    (integer) 1
    127.0.0.1:6379> smembers se
    1) "1"
    

    7.集合操作

    与数学中的集合操作类似,其中:

    • SDIFF
      差集操作
    • SINTER
      交集操作
    • SUNION
      并集操作

    测试如下:

    127.0.0.1:6379> sadd set01 1 2 3 4 5
    (integer) 5                         
    127.0.0.1:6379> sadd set02 1 2 3 a b
    (integer) 5                         
    127.0.0.1:6379> SDIFF set01 set02   
    1) "4"                              
    2) "5"                              
    127.0.0.1:6379> SINTER set01 set02  
    1) "1"                              
    2) "2"                              
    3) "3"                              
    127.0.0.1:6379> SUNION set01 set02  
    1) "4"                              
    2) "a"                              
    3) "1"                              
    4) "2"                              
    5) "3"                              
    6) "5"                              
    7) "b"                              
    

    三、Redis-Zset类型

    ZSet是Redis中的有序集合类型。

    1.zadd/zrange

    设置和根据范围获取值。
    测试如下:

    127.0.0.1:6379> zadd ze 60 v1 70 v2 80 v3 90 v4 100 v5
    (integer) 5
    127.0.0.1:6379> zrange ze 0 -1
    1) "v1"
    2) "v2"
    3) "v3"
    4) "v4"
    5) "v5"
    127.0.0.1:6379> zadd ze1 60 v1 70 v2 80 v3 100 v4 90 v5
    (integer) 5
    127.0.0.1:6379> zrange ze1 0 -1
    1) "v1"
    2) "v2"
    3) "v3"
    4) "v5"
    5) "v4"
    127.0.0.1:6379> zadd ze2 60 v1 70 v2 80 v3 90 v4 90 v5
    (integer) 5
    127.0.0.1:6379> zrange ze2 0 -1
    1) "v1"
    2) "v2"
    3) "v3"
    4) "v4"
    5) "v5"
    127.0.0.1:6379> zadd ze3 name v1 age v2 80 v3 90 v4 90 v5
    (error) ERR value is not a valid float
    127.0.0.1:6379> zadd ze4 60 v1 70 v2 80 v1 90 v4 90 v5
    (integer) 4
    127.0.0.1:6379> zrange ze4 0 -1 withscores
    1) "v2"
    2) "70"
    3) "v1"
    4) "80"
    5) "v4"
    6) "90"
    7) "v5"
    8) "90"
    

    显然,zset的值只能是数值型(浮点数),如果是字符串会报错;
    如果键相同,后边对应的值会覆盖前面对应的值。

    2.zrangebyscore key start end

    根据开始结束范围来取值;
    结束不包括用 (
    limit限制从指定索引开始获取指定条数据。
    测试如下:

    127.0.0.1:6379> zrangebyscore ze 60 80
    1) "v1"
    2) "v2"
    3) "v3"
    127.0.0.1:6379> zrangebyscore ze 60 (80
    1) "v1"
    2) "v2"
    127.0.0.1:6379> zrangebyscore ze 60 80 limit 1 2
    1) "v2"
    2) "v3"
    127.0.0.1:6379> zrangebyscore ze 60 80 limit 1 2
    1) "v2"
    2) "v3"
    127.0.0.1:6379> zrangebyscore ze 60 80 limit 0 2
    1) "v1"
    2) "v2"
    

    3.zrem key

    删除元素。
    测试如下:

    127.0.0.1:6379> zrem ze v1
    (integer) 1
    127.0.0.1:6379> zrange ze 0 -1
    1) "v2"
    2) "v3"
    3) "v4"
    4) "v5"
    

    4.zcard/zcount/zrank

    获取数据总数/指定范围的数据个数/指定数据对应下标
    测试如下:

    127.0.0.1:6379> zcard ze
    (integer) 4
    127.0.0.1:6379> zcount ze 70 90
    (integer) 3
    127.0.0.1:6379> zrank ze v4
    (integer) 2
    

    四、Python操作Redis

    1.Python中redis的安装和连接

    如果未安装redis库,需要先通过命令安装:

    pip install redis
    

    连接方式如下 :

    r = redis.StrictRedis(host='localhost',port=6379,db=0)
    

    2.Python操作Redis-String

    简单测试:

    import redis
    
    r = redis.StrictRedis(host='localhost', port=6379, db=0)  # 与redis.Redis()效果相同
    
    print(r)
    

    打印

    Redis<ConnectionPool<Connection<host=localhost,port=6379,db=0>>>
    

    显然,r是一个redis对象。

    封装类操作:

    import redis
    
    
    class StringRedis(object):
        def __init__(self):
            self.r = redis.StrictRedis()  # 因连接参数为默认,所以可以不带参数
    
        def string_set(self, key, item):
            '''字符串设置值'''
            res = self.r.set(key, item)  # 返回布尔值
            print(res)
    
        def string_get(self, key):
            '''字符串取值'''
            res = self.r.get(key) # 返回字节型数据
            return res
    
    
    if __name__ == '__main__':
        s = StringRedis()
        s.string_set('user', 'corley')
        res = s.string_get('user')
        print(type(res), res)
    

    打印

    True
    <class 'bytes'> b'corley'
    

    进一步完善操作:

    import redis
    
    
    class StringRedis(object):
        def __init__(self):
            self.r = redis.StrictRedis()  # 因连接参数为默认,所以可以不带参数
    
        def string_set(self, key, item):
            '''字符串设置值'''
            res = self.r.set(key, item)  # 返回布尔值
            print(res)
    
        def string_get(self, key):
            '''字符串取值'''
            res = self.r.get(key) # 返回字节型数据
            return res
    
        def string_mset(self, items):
            '''字符串设置多个值'''
            if isinstance(items, dict):
                res = self.r.mset(items) # 返回布尔值
                print(res)
    
        def string_mget(self, keys):
            '''字符串取多个值'''
            if isinstance(keys, list):
                return self.r.mget(keys)
    
        def string_del(self, key):
            '''删除值'''
            if self.r.exists(key):
                self.r.delete(key)
            else:
                return '%s Not Found' % key
    
    if __name__ == '__main__':
        s = StringRedis()
        s.string_set('user', 'corley')
        res1 = s.string_get('user')
        print(type(res1), res1)
        d = {
            'age':18,
            'sex':1
        }
        s.string_mset(d)
        res2 = s.string_mget(['user', 'age', 'sex'])
        print(type(res2), res2)
        res3 = s.string_del('user')
        res4 = s.string_del('name')
        print(res3, res4)
    

    打印

    True
    <class 'bytes'> b'corley'
    True
    <class 'list'> [b'corley', b'18', b'1']
    None name Not Found
    

    3.Python操作Redis-List

    import redis
    
    
    class ListRedis(object):
        def __init__(self):
            self.r = redis.StrictRedis()
    
        def list_lpush(self, key, item):
            '''列表设置值'''
            res = self.r.lpush(key, item)  # 返回布尔值
            print(res)
    
        def list_lpop(self, list):
            '''列表弹出值'''
            res = self.r.lpop(list) # 返回字节型数据
            return res
    
    
    if __name__ == '__main__':
        l = ListRedis()
        l.list_lpush('li', 1)
        l.list_lpop('li')
    

    打印

    1
    
    

    Python中List添加值一次只能添加一个,如有多个,可以使用循环。
    再次测试:

    import redis
    
    
    class ListRedis(object):
        def __init__(self):
            self.r = redis.StrictRedis()
    
        def test_push(self):
            res = self.r.lpush('test','1')
            res = self.r.rpush('test','2')
            res = self.r.rpush('test','3')
    
        def test_pop(self):
            res = self.r.lpop('test')
            print(res)
            res = self.r.rpop('test')
            print(res)
    
        def test_range(self):
            res = self.r.lrange('test',0,-1)
            print(res)
    
    
    if __name__ == '__main__':
        l = ListRedis()
        l.test_push()
        l.test_range()
        l.test_pop()
    

    打印

    [b'1', b'2', b'3']
    b'1'
    b'3'
    

    4.Python操作Redis-Set

    简单操作示例如下:

    import redis
    
    
    class SetRedis(object):
        def __init__(self):
            self.r = redis.StrictRedis()
    
        def test_sadd(self):
            res = self.r.sadd('set1','1','2')
    
        def test_del(self):
            res = self.r.srem('set1',1)
    
        def test_pop(self):
            res = self.r.spop('set1')
    
        def test_members(self, key):
            res = self.r.smembers(key)
            print(res)
    
    
    if __name__ == '__main__':
        s = SetRedis()
        s.test_sadd()
        s.test_members('set1')
        s.test_del()
        s.test_members('set1')
        s.test_pop()
        s.test_members('set1')
    

    打印

    {b'2', b'1'}
    {b'2'}
    set()
    

    5.Python操作Redis-Hash

    用Python操作Redis-Hash示例如下:

    import redis
    
    
    class HashRedis(object):
        def __init__(self):
            self.r = redis.StrictRedis()
    
        def test_hset(self):
            dic = {
                'id': 1,
                'name': 'huawei'
            }
            res = self.r.hmset('mobile', dic)
    
        def test_hgetall(self):
            res = self.r.hgetall('mobile')
            print(res)
    
        def test_hexists(self):
            res = self.r.hexists('mobile', 'id')
            print(res)
    
    
    if __name__ == '__main__':
        h = HashRedis()
        h.test_hset()
        h.test_hgetall()
        h.test_hexists()
    

    打印

    {b'id': b'1', b'name': b'huawei'}
    True
    
    

    五、Redis主从配置

    1.主从概念

    在实际过程中,缓存可能因为内存占用更多或其他不可预料的因素而崩溃,这样会使得用户直接访问数据库,从而导致主数据据库的访问压力大大增加,所以为了使缓存不易发生数据库崩溃,应该对缓存建立主从配置,从而提高系统的容灾性能。
    缓存的主从配置
    Redis主从配置特性如下:

    • ⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构
    • master用来写数据,slave用来读数据
      读数据比写数据多得多,据统计,网站的读写比率是10:1
    • 通过主从配置可以实现读写分离,扩展性能
    • master和slave都是一个redis实例(redis服务)

    示意如下:
    master-slave

    2.主从配置过程

    以下相关操作均是在Linux(Kali)进行的。
    可以在Redis配置文件中设置守护线程参数daemonize为yes,以便后面更方便地开启Redis服务,如下:
    daemonize yes

    配置主机和开启服务

    • 修改redis.conf配置文件

    bind 0.0.0.0 # 或者改成本机IP

    • 开启主机服务
    src/redis-server redis.conf
    

    配置从机和开启服务

    • 复制redis.conf配置文件
    cp redis.conf slave.conf
    
    • 修改slave.conf文件
      有3处修改的地方:

    bind 192.168.186.132(主机IP,通过ifconfig名获取)

    port 6378(从机端口)

    replicaof 192.168.186.132(主机IP) 6379(主机端口) # 旧版本Redis中为slaveof

    在配置文件中位置示意如下:
    bind
    port
    replicaof

    • 开启从机服务
    src/redis-server slave.conf
    

    主从数据操作测试

    • 连接主从客户端
    src/redis-cli -p 6379
    src/redis-cli -h 192.168.186.132 -p 6378
    
    • 读写数据
      在主机上写数据:
    set name corley
    

    在从机上读数据:

    get name
    

    具体演示过程如下:
    redis master-slave config test
    可以看出,主机才有写权限,从机只能读

    展开全文
  • 集合(Set)Redis的Set是string类型的无序集合。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。 函数说明1,SADD: 向...

    集合(Set)

    Redis的Set是string类型的无序集合。
    集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
    集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
    函数说明

    1,SADD: 向集合对象添加成员,sadd(self, name, value) ,添加一个string(注意是string!!!)元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。
    2,SCARD : 获取集合元素个数,scard(self, name)
    3,SDIFF: 返回给定多个集合对象的差集(set key1-set key2..-set keyn),从左到右计算集合差集,sdiff(self, keys, *args)
    4,SDIFFSTORE: 返回给定给定多个集合对象的差集并存储在目标(dest)集合中,sdiffstore(self, dest, keys, *args)
    5,SINTER: 返回给定所有集合(keys, *args)的交集, sinter(self, keys, *args)
    6,SINTERSTORE: 返回给定所有集合(keys, *args)的交集并存储在 集合(dest) 中, sinterstore(self, dest, keys, *args)
    7,SISMEMBER: 判断 value元素是否是集合 name 的成员,返回布尔逻辑值True或者False, sismember(self, name, value)
    8,SMEMBERS: 返回集合中所元素值的Python集合类型数据,smembers(self, name)
    9,SMOVE: 将元素value从集合src移动到 集合 dest。若元素value在集合src中不存在,则集合dest中不会添加元素value, smove(self, src, dest, value)
    10,SPOP: 移除并返回集合中的一个随机元素, spop(self, name)
    11,SRANDMEMBER: 返回集合中一个随机数,但是不做移除操作, srandmember(self, name)。从 Redis 2.6 版本开始, 在命令行下Srandmember 命令接受可选返回元素数量的参数 redis>SRANDMEMBER name count
    12,SREM: 移除集合中一个元素,srem(self, name, value),redis模块任然沿用 Redis 2.4 版本以前的只接受单个元素的用法。
    13,SUNION: 返回所有给定集合的并集中所有元素,sunion(self, keys, *args)
    14,SUNIONSTORE: 所有给定集合的并集存储在集合dest 中, sunionstore(self, dest, keys, *args)

    哈希(Hash)

    Redis hash 是一个键名对集合。
    Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
    每个 hash 可以存储 232 -1 键值对(40多亿)。

    函数说明
    1,HDEL: 删除对应哈希(Hash)表的指定键(key)的字段,hdel(self, name, key)
    2,HEXISTS: 检测哈希(Hash)表对应键(key)字段是否存在,返回布尔逻辑,hexists(self, name, key)
    3,HGET: 获取哈希(Hash)指定键(key)对应的值,hget(self, name, key)
    4,HGETALL: 获取哈希(Hash)表的键-值对(key-value pairs),返回python字典类型数据,hgetall(self, name)
    5,HINCRBY: 为哈希表(Hash)指定键(key)对应的值(key)加上指定的整数数值(int,可为负值),参见 [Python操作Redis:字符串(String)],hincrby(self, name, key, amount=1),Redis 中本操作的值被限制在 64 位(bit)有符号数字。
    6,HKEYS: 返回哈希表(Hash)对应键(key)的数组(Python称之为列表List),hkeys(self, name)
    7,HLEN: 获取哈希表(Hash)中键-值对(key-value pairs)个数,hlen(self, name)
    8,HMGET: 获取哈希表(Hash)中一个或多个给点字段的值,不存在返回nil(Redis命令行)/None(Python),hmget(self, name, keys),其中keys可以为列表(list)
    9,HMSET: 设置对个键-值对(key-value pairs)到哈希表(Hash)中,python输入值(mapping)为字典(dictionary)类型,hmset(self, name, mapping)
    10,HSET: 为哈希表(Hash)赋值,若键(key)存在值(value)则覆盖,不存在则创建,hset(self, name, key, value)
    11,HSETNX:为哈希表(Hash)不存值(value)的键(key)赋值,存在操作无效,对应值(value)无变化,hsetnx(self, name, key, value)
    12,HVALS:返回哈希表(Hash)对应值(value)的列表,hvals(self, name)

    hgetall和hmset方法可以跟Python的字典很好的转换,对于redis存储,Python字典操作很是方便。

    列表(List)

    函数说明

    1,lpush函数实现了从向指定redis列表头部压入数据功能,lpush key value
    2,lrange获取列表指定范围的函数,lrange key start end
    3,lindex根据列表下标量获取列表元素值, lindex key index
    4,blpop从列表头部取出第一个元素,返回该元素值并从列表删除(l代表left,左边)
    5,brpop从列表尾部取出第一个元素,返回该元素值并从列表删除(l代表right,右边)
    6,LLEN 获取列表长度,llen(key)
    7,LPOP移出并获取列表的第一个元素,lpop(key)
    8,LRANGE key start stop ,获取列表指定范围内的元素,lrange(key,start,stop)
    9,LSET key index value,通过索引设置列表元素的值,lset(key,index,value)
    10, LTRIM key start stop ,对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。ltrim(key,start,stop)
    11,RPOP key ,移除并获取列表最后一个元素,rpop(key)
    12,RPOPLPUSH source destination ,移除列表的最后一个元素,并将该元素添加到另一个列表并返回
    13,RPUSH key value1 [value2] ,在列表中添加一个或多个值,rpush(key,value1,[value2])

    批量删除key

    import redis
    r = redis.Redis(host=HOST, port=PORT, db=DB)
    keys = r.keys()
    r.delete(*keys)
    展开全文
  • python使用正则批量删除redis中的数据

    千次阅读 2019-02-14 10:53:05
    尽在使用python操作redis时,因业务需求需要在存数据之前清空上一次存的数据,之前存的key是stats.row.referer1 、stats.row.referer2...等数据,于是就想到批量删除,网上对于相关的叙述并不是特别清晰,因此把问题...
    尽在使用python操作redis时,因业务需求需要在存数据之前清空上一次存的数据,之前存的key是stats.row.referer1 、stats.row.referer2...等数据,于是就想到批量删除,网上对于相关的叙述并不是特别清晰,因此把问题进行记录。
    以下就是部分代码:
    import redis #导入redis依赖
    
    
    rdb = redis.Redis(host='127.0.0.1', port=6379, db=6) #配置redis链接信息
    '''
    rdb.keys("stats.row.referer*")获取所有以stats.row.referer开头的key  
    先判断一次的原因是如果redis在第一次存储时没有这些key,进行批量删除会报错。
    注意 rdb.delete(*rdb.keys("stats.row.referer*"))这个前面的*是不可少的。
    '''
    if (rdb.keys("stats.row.referer*")):
        rdb.delete(*rdb.keys("stats.row.referer*"))
    展开全文
  • python操作redis缓存-其他常用操作,用于操作redis里的...delete(*names)根据删除redis中的任意数据类型 #!/usr/bin/env python # -*- coding:utf-8 -*- import redis #导入操作redis模块 pool = redis....
  • python操作redis数据库中的set类型数据

    千次阅读 2019-06-11 19:43:24
    redis数据库中set数据操作 1.存储 sadd key value value ... 2.删除(srem) srem key value value ... 删除所有 del key 3.判断元素是否存在(sismember) sismember key element 4.读取(smembers) smembers key...
  • python操作redis和MySQL数据库需要先分别导入模块:redis、pymysql  如果这个库没有导入成功,则需要安装,用pip3 ...以此来保证该代码不会出错,添加表或数据之后要记得相应的删除...  要用python链接数据库,...
  • 删除数据 del key 添加数据并设置过期时间 setex key 时间 value 查看剩余时间 ttl key 批量添加数据 mset key1 value1 key2 value2.... 批量获取多个 mget key1 key2 key3.... 追加数据,在原数据后面追加数据 ...
  • 数据类型的解析 Redis键(key) keys * exists key 的名字 move key db 将key移动到另外一个DB钟 expire key 秒钟 设定key的存活时间 ttl key 查看key还剩下多少秒存活时间 type key 查看你的key值的类型 Redis字符...
  • python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├── init_news.py ├── redis_news.py ├── ...
  • 适用于数据量不多的场景 import redis r_pool = redis.ConnectionPool(host='00.00.00.127', port=9520,db=0,password='123456',decode_responses=True) rconn=redis.Redis(connection_pool=r_pool) list_keys = ...
  • pythonredis的使用

    2019-10-09 15:45:55
    安装 pip install redis 语法 String 记录字符串/整数/浮点数 命令 set 添加/修改数据 get 获取数据 ...del 删除数据 exists 判断数据是否存在 expire 设置过期时间 ttl 获取剩余时间 keys 查询满⾜...
  • 它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。 布隆过滤器的基本思想  通过一种叫作散列表(又叫哈希表,Hash table)的数据结构。它可以通过一个Hash函数将一个元素...
  • PythonRedis的交互

    千次阅读 2020-10-20 21:10:48
    文章目录StrictRedis对象⽅法使用StrictRedis对象对string类型数据进行增删改查string-增加string-获取string-修改string-删除获取键 StrictRedis对象⽅法 通过init创建对象,指定参数host、port与指定的服务器和端...
  • 该脚本扫描redis中所有的key,用于分析redis内存数据的key构成,扫描并保存文件,需要python支持redis模块。 #!/usr/bin/env python # -*- coding: utf-8 -*- #jack chen import os, sys, time import redis def ...
  • 常用操作  1.1 delete(*names) ? 1 ...# 根据删除redis中的任意数据类型 print(r.get('name')) r.delete('name') print(r.get('name')) # 输出 b'bigberg' None...
  • 用户下单之后,在规定时间内如果不完成付款,订单自动取消,并且释放库存使用技术:Redis键空间通知(过期回调)用户下单之后将订单id作为key,任意值作为值存入redis中,给这条数据设置过期时间,也就是订单超时的...
  • redis数据操作

    2019-07-25 22:50:36
    文章目录redis数据操作数据结构string类型数据存入数据获取键命令hash类型数据的增加修改数据的获取数据的删除list类型数据增加数据的获取数据修改数据删除set类型数据增加数据获取删除zset类型数据添加数据获取数据...
  • 获取key值,获取数据库数据条数3.删除指定的key-value值和所有的key-value值4.选择集合存储5.获取指定成员(并集交集操作) 一、Redis数据库的定义及下载 Redis(全称:Remote Dictionary Serv...
  • Python Redis 常用操作

    2018-01-18 19:42:00
    # 根据删除redis中的任意数据类型 exists(name) # 检测redis的name是否存在 keys(pattern='*') # 根据模型获取redis的name # 更多: # KEYS * 匹配数据库中所有 key 。 # KEYS h?llo ...
  • redis是key-value的数据结构,每条数据都是⼀个键值对 键的类型是字符串 注意:键不能重复 值的类型分为五种: 字符串string 哈希hash 列表list 集合set 有序集合zset 数据操作行为 ...
  • 首先,记录下遇到的问题吧,在抓取的过程中为了避免IO操作,主要用Redis做插入缓存,当内存...并不会在数据删除后立即释放内存,使得将数据删除Redis的内存占用率还是很高,这里引出官方说明,希望能说明些情况: R...
  • python-部分redis

    2018-03-01 22:11:00
    数据量非常大时想向数据库中保存的时候,可以在中间加一个...redis: 端口6379 1.本质:向内存中存数据 2.对内存的整理策略: 存贮:会把内存分成很多块,大的数据存一块,一些小的数据存一块 删除:...
  • 批量删除redis的key

    2020-03-02 16:31:17
    项目中某个redis的key下面有几十万条数据,用rdm工具删能卡死,于是用python写了一个脚本来删,效果非常不错,推荐给大家。 举个例子com:uecent:udata:climb下面有几十万条数据,比如 ...…...
  • redispython交互

    2020-05-18 22:44:01
    redispython交互安装调⽤模块Redis对象⽅法stringkeyshashlistzsetsetpython代码练习操作redis的string类型数据准备string-增加string-获取string-修改string-删除获取键 安装 安装Redis 联⽹安装 第三方包redis-...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

python删除redis数据

python 订阅
redis 订阅