Redis与Python在项目中的交互

##Python与Redis的交互python

###具体操做大体分为三步: ######如下步骤全在在项目文件所在虚拟环境中进行git

  1. 安装Redis
  2. 调用模块
  3. 进行交互操做

#####安装Redis的三种方法:github

  • 第一种:进入虚拟环境,联网安装包redis(推荐)

pip install redisredis

  • 第二种:进入虚拟环境,联网安装包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服务器

#####调用模块app

  • 引入模块

#####from redis import StrictRedis
这个模块中提供了StrictRedis对象(Strict严格),用于链接redis服务器,并按照不一样类型提供 了不一样方法,进行交互操做ui

StrictRedis对象方法:

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

  • 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

相关文章
相关标签/搜索