Redis学习笔记 - 03: 整合python客户端

stand_test.py(对string进行操作)

import redis
import time
res = redis.Redis(host='localhost', port=6379, db=0,decode_responses=True)
#print(res.get('incredible').decode("utf-8"))




if __name__ == '__main__':
    #使用set方法
    res.set('foo', 'bar')
    print(res.get('foo'))
    #使用mset方法
    a = {'key1': 'v1', 'key2': 'v2', 'key3': 'v3', 'key4': 'v4', 'key5': 'v5', 'key6': 'v6', }
    res.mset(a)
                
    print(res.get('key1')+res.get('key2')+res.get('key3')+res.get('key4')+res.get('key5')+res.get('key6'))
    #使用mget方法
    print(res.mget('key1','key2','key3','key4','key5','key6',))
    #使用INCR方法
    res.set('incredible','12')
    res.incr('incredible','10')
    print(res.get('incredible'))
    res.incr('incredible')
    print(res.get('incredible'))
    text=res.get('incredible')
    #使用exists方法
    print(res.exists('key1'))
    if(res.exists('key1')==1):
        print('存在')
    elif(res.exists('key1')==0):
        print('不存在')
    print(res.exists('key'))
    print(res.exists('incredible'))
    print(res.exists('incr'))
    #使用delete方法
    res.delete('key')
    if (res.exists('key') == 1):
        print('存在')
    elif (res.exists('key') == 0):
        print('不存在')
    #使用type方法
    res.set('flew','3.14')
    print(res.type('flew'))
    res.delete('flew')
    print(res.type('flew'))
    #使用expire方法
    res.set('timer','nolonger')
    res.expire('timer','5')
    print(res.get('timer'))
    time.sleep(3)
    print(res.get('timer'))
    time.sleep(1)
    print(res.get('timer'))
    time.sleep(1)
    print(res.get('timer'))
    #使用set ex and ttl方法
    res.set('ttl','i m alive',ex=10)
    print('I will be terminated in'+str(res.ttl('ttl'))+'sec')
    time.sleep(1)
    print('I will be terminated in' +str(res.ttl('ttl')) + 'sec')
    time.sleep(1)
    print('I will be terminated in' + str(res.ttl('ttl')) + 'sec')
    time.sleep(1)
    print('I will be terminated in' +str(res.ttl('ttl'))+ 'sec')
    time.sleep(1)
    print('I will be terminated in' + str(res.ttl('ttl')) + 'sec')
    time.sleep(1)
    print('I will be terminated in' +str(res.ttl('ttl')) + 'sec')
    time.sleep(1)
    print('I will be terminated in' + str(res.pttl('ttl')) + 'psec')
    time.sleep(1)
    print('I will be terminated in' + str(res.ttl('ttl')) + 'sec')
    time.sleep(1)
    print('I will be terminated in' +str(res.ttl('ttl')) + 'sec')
    time.sleep(1)
    print('I will be terminated in' + str(res.ttl('ttl')) + 'sec')
    time.sleep(1)
    print('I will be terminated in' +str(res.ttl('ttl')) + 'sec')
    if(res.ttl('ttl')==-1):
        print('I am always alive')
    elif(res.ttl('ttl')==-2):
        print("I don't exist anymore")
    else:
        print('I will be terminated in' + str(res.ttl('ttl')) + 'sec')

list_test.py(对list进行操作)

from stand_test import res
#list.l/rpush
if __name__ == '__main__':

    res.delete('list')
    alphabet=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
    for j in alphabet:
        res.rpush('list',j)
    print(res.lrange('list',0,-1))
    #list.l/rpop
    #print(res.rpop('list'))
    #print(res.lrange('list',0,-1))
    for i in range (0,len(alphabet)):
        print(res.rpop('list'))
        print(res.lrange('list',0,-1))
        print(res.lpush('list',i))
        print(res.lrange('list', 0, -1))
    res.ltrim('list',0,19)
    print(res.lrange('list',0,-1))
    print(res.brpop('list',5))

set_test.py(对set进行操作)

from stand_test import res
if __name__ == '__main__':
    res.sadd('set','1','2','3')
    res.sadd('set','4')
    print(res.smembers('set'))
    print(res.sismember('set', 3))
    print(res.sismember('set',5))

    res.sadd('add','administrator')
    print(res.smembers('add'))
    print(res.sinter('set','add'))#交集
    print(res.sunion('set','add'))#并集

set_game.py(根据set的特点模拟一个纸牌游戏)

from  stand_test import res
if __name__ == '__main__':
    res.sadd('desk','草花1','草花2','草花3','草花4','草花5','草花6','草花7','草花8','草花9','草花10','草花J','草花Q','草花K','方片1','方片2','方片3','方片4','方片5','方片6','方片7','方片8','方片9','方片10','方片J','方片Q','方片K','红桃1','红桃2','红桃3','红桃4','红桃5','红桃6','红桃7','红桃8','红桃9','红桃10','红桃J','红桃Q','红桃K','黑桃1','黑桃2','黑桃3','黑桃4','黑桃5','黑桃6','黑桃7','黑桃8','黑桃9','黑桃10','黑桃J','黑桃Q','黑桃K')
    print(res.smembers('desk'))
    res.sunionstore('round1','desk')
    print(res.smembers('round1'))
    print(res.spop('round1'))
    print(res.spop('round1'))
    print(res.spop('round1'))
    print(res.spop('round1'))
    print(res.spop('round1'))
    print(res.scard('round1'))

sortedset_test.py(对sortedset进行操作)

from stand_test import res
if __name__ == '__main__':
    a = {'Alan Kay': '1940', 'Sophie Wilson': '1957', 'Richard Stallman': '1953', 'Anita Borg': '1949',
         'Yukihiro Matsumoto': '1965', 'Hedy Lamarr': '1914', 'Claude Shannon': '1916', 'Linus Torvalds': '1969',
         'Alan Turing': '1912'}
    b={'jason':1942}
    res.zadd('sort',a)
    print(res.zrange('sort',0,-1,withscores=True))#value写前面,后面是分数

hashed_test.py(对hashed进行操作)

from stand_test import res
if __name__ == '__main__':
    a = {'name': 'json', 'age': '13', 'sex': 'male', 'job': 'coder', 'hobby': 'sleep', }
    res.hmset('hash',a)
    print(res.hget('hash','name'))
    print(res.hget('hash','age'))
    print(res.hget('hash','sex'))
    print(res.hget('hash','job'))
    print(res.hget('hash','hobby'))
    print(res.hgetall('hash'))
    print(res.hmget('hash','name','ismerry'))
    res.hincrby('hash','age','15')
    print(res.hgetall('hash'))

 

出现这个错误的原因是在导入seaborn包时,无法从typing模块中导入名为'Protocol'的对象。 解决这个问题的方法有以下几种: 1. 检查你的Python版本是否符合seaborn包的要求,如果不符合,尝试更新Python版本。 2. 检查你的环境中是否安装了typing_extensions包,如果没有安装,可以使用以下命令安装:pip install typing_extensions。 3. 如果你使用的是Python 3.8版本以下的版本,你可以尝试使用typing_extensions包来代替typing模块来解决该问题。 4. 检查你的代码是否正确导入了seaborn包,并且没有其他导入错误。 5. 如果以上方法都无法解决问题,可以尝试在你的代码中使用其他的可替代包或者更新seaborn包的版本来解决该问题。 总结: 出现ImportError: cannot import name 'Protocol' from 'typing'错误的原因可能是由于Python版本不兼容、缺少typing_extensions包或者导入错误等原因造成的。可以根据具体情况尝试上述方法来解决该问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ImportError: cannot import name ‘Literal‘ from ‘typing‘ (D:\Anaconda\envs\tensorflow\lib\typing....](https://blog.youkuaiyun.com/yuhaix/article/details/124528628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值