Redis与Python在项目中的交互

Python与Redis的交互

具体操作大致分为三步:

以下步骤全在在项目文件所在虚拟环境中进行
  1. 安装Redis
  2. 调用模块
  3. 进行交互操作
安装Redis的三种方法:
  • 第一种:进入虚拟环境,联网安装包redis(推荐)

    pip install redis

  • 第二种:进入虚拟环境,联网安装包redis

    easy_install redis

  • 第三种:到中文官网-客户端下载redis包的源码,使用源码安装

    一步步执行 wget http://github.com/andymccurdy/redis-py/archive/master.zip
    unzip master.zip
    cd redis-py-master
    sudo python setup.py install

调用模块
  • 引入模块

    from redis import StrictRedis

    这个模块中提供了StrictRedis对象(Strict严格),用于连接redis服务器,并按照不同类型提供 了不同方法,进行交互操作

    StrictRedis对象方法:

    通过init创建对象,指定参数host、port与指定的服务器和端口连接,host默认为localhost,port默认为6379,db默认为0
    sr = StrictRedis(host='localhost', port=6379, db=0)

  • StrictRedis根据不同的value类型,拥有不同的实例方法可以调用,与redis命令对应,方法需要的参数 与 命令的参数一致

以string类型为例进行交互操作
准备工作:
  • 在桌面上创建redis目录
  • 使用pycharm打开 redis目录
  • 创建redis_string.py文件

具体增加string类型值的代码如下:

from redis import StrictRedis
if name=="main":
    try:
       #创建StrictRedis对象,与redis服务器建立连接
       sr=StrictRedis() # 默认主机本地,端口号6379,第0个库(共16个)
       #添加键what,值为我好帅
       result=sr.set('what','我好帅')
       #输出响应结果,如果添加成功则返回True,否则返回False
       print(result)
   except Exception as e:
       print(e)

下面是对 获取/更改/删除 string类型值的补充
获取:

result = sr.get('name')
#输出键的值,如果键不存在则返回None
print(result)

更改:

result = sr.set('name','itcast')
#输出响应结果,如果操作成功则返回True,否则返回False
print(result)

删除:

result = sr.delete('name')
#输出响应结果,如果删除成功则返回受影响的键数,否则则返回0
print(result)

同时设置/获取多个键值:mset({n个键值对}) / mget([n个键])
    sr.mset({'model1': '11', 'model2': '22','model3':'33'}) # 设置
    res1, res2, res3 = sr.mget(['model1', 'model2', 'model3']) # 获取  
    print(res1,res2,res3) # 打印 '11' '22' '33'
设置过期时间:setex(键,时间/秒,值)
    # 为键值设置过期时间
    sr.setex('time', 3600, '10点整')
拼接:append('键','值')
    # age 的初始值是19
    # 拼接值 值得结果是age为1920
    sr.append('age', '20')
(2)hash类型在交互中的crud语句演示:
设置/获取单个: hset('key','field','value') / hget('key','filed')
    sr.hset('python','ma','男') # 设置
    res_hx = sr.hget('python','ma') # 获取
    print(res_hx) # 打印结果:'男'
设置/获取多个hash值:
    sr.hmset('fruit',{'bnana':'yello','apple':'red','orange':'orage'}) #设置
    hres1,hres2,hres3 = sr.hmget('fruit',['bnana','apple','orange']) #获取 
    print(hres1,hres2,hres3) #打印结果 b'yello' b'red' b'orange'
获取key映射下的所有键值对:
    #获取键fruit映射的所有键值对
    res_dir = sr.hgetall('fruit')
    print(res_dir) # 结果{b'apple': b'red', b'bnana': b'yello',b'orange':'orange'}
获取key映射的键值对个数:
    nums = sr.hlen('fruit')
    print(nums) # 结果 3
删除key field 对应的值:hdel('key','field') /与string类型有区别
    sr.hdel('fruit','orange')
    print(exists('fruit','orange')) # 打印结果是0  1代表存在 
    print(exists('fruit')) # 1 因为键fruit还存在 映射'bnana','apple'
查看key映射下的所有field:
            res =  sr.hkeys('fruit')
            print(res) # ‘bnana’ ‘apple’ ‘orange’
查看key映射下的所有value
            res = sr.vals('fruit')
            print(res) # 'yellow' 'red' 'orange'
(3)针对 键 的操作(适用于任何类型):

exists / type / delete / expire / getrange / ttl

  sr.exists('python')# 1代表存在 0代表不存在
  sr.delete('python') # 删除键python及其所有映射
  sr.expire('python','3') # 指定python 的过期时间为3秒
  sr.ttl('python') # 查看过期时间
  sr.type('python')
终端命令:删除当前数据库所有的key 执行flushdb ,删除所有数据库的 执行flushal
另外,以上所有命令均适用于终端命令行(终端命令行自动提示)

补充1:终端删除键用 :del key, 不过哈希对field的删除要用: hdel key field 完成
补充2:交互删除键用delete('key'), 对哈希类型中field 的删除用 hdel('key','field') ,因为在哈希类型中一个key可能对应多个field

转载于:https://www.cnblogs.com/m-j-y/p/8688987.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值