pythonpython操作redis

Posted 西瓜汁拌面

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pythonpython操作redis相关的知识,希望对你有一定的参考价值。

1、python要操作redis 首先需要安装redis模块,然后导入才能使用

      安装:pip install redis

      导入:import redis

2、连接redis

      r = redis.Redis(host=‘192.168.21.129‘,password=‘123456‘,db=1,port=6379)

      password在配置文件redis.conf中查看,port一般是6379,db可根据需要操作的数据库进行选择

3、redis的增删改查

     redis中key所存储的值类型有多种,主要说明string类型和hash类型。用命令   redis 127.0.0.1:6379> TYPE KEY_NAME可查看值的存储类型。 

以下是针对string类型的操作
r.set(user3,e10adc3949ba59abbe56e057f20f883e)#数据库里面新增一个值,修改也是set
r.setex(user1,e10adc3949ba59abbe56e057f20f883e,300)#数据库里新增一个值,并且设置key的失效时间,最后这个参数是秒
r.set(session:user1,{"seessionid":"a5dfcb047721e02a6f8bff779c856165","login_time":"201805081820"})#新增值,值都在一个session文件夹里面存储
print(r.get(user1))#获取对应key的值,返回的类型是byte类型,需要解码
print(r.get(user1).decode())#获取到的value值解码
print(r.get(session:user1).decode())
print(r.keys())#获取所有的key,存在一个list里面,元素是byte类型,如:[buser3, buser1, bsession:user1]
#获取所有的key,并且解码输出
list = [k.decode() for k in r.keys()]
print(list)  #输出如:[user3, user1, session:user1]
r.delete(user3)#删除指定的key
#删除所有的key需要循环
for k in r.keys():
    r.delete(k)
以下是哈希类型  hash操作,嵌套字典
r.hset(info,张三,北京,本科,测试工程师)#hash类型存储方式会有两个key,大key(info)和小key(张三),但无法设置小key的失效时间
r.hset(info,李四,湖北,博士,Boss)
r.hset(info,王五,江西,博士,CEO)
r.hset(login_mll,test1,{"seessionid":a5dfcb047721e02a6f8bff779c815165,"login_time":201805051820})
print(r.hget(info,张三).decode())  #指定大key和小key获取对应的数据
print(r.hgetall(info))  #获取里面所有的k和-v,所有的K,V存储在字典里,但是是byte类型

# 获取里面所有的k和-v,所有的K,V存储在字典里,并且解码输出
info  = r.hgetall(info)
new_info = {}
for k,v in info.items():
    new_info[k.decode()] = v.decode()
print(new_info)

r.hdel(info,张三)  #删除指定key
r.delete(info)  #删除整个key
r.expire(info,100) #第一个key设置失效时间,无法设置小key的失效时间
print(r.ttl(info))#获取key的失效时间
print(r.type(info))  #查看key是什么类型的

小练习:将数据库中某个表的数据导入到redis中

分析:1、连数据库,查到数据库里面所有的数据,游标类型要用pymysql.curosrs.DictCour

           2、查到所有数据 [ {"id":1,"passwd":"49487dd4f94008a6110275e48ad09448","username":"niuhayang","is_admin":1}]
          3、循环这个list,取到usernamer,把username当做key
          4、再把这个小字典转成json,存进去就ok。

import pymysql,json,redis
r = redis.Redis(host=118.24.3.40,password=HK139bc&*,db=1,port=6379)
conn = pymysql.connect(host=118.24.3.40,user=jxz,passwd=123456,db=jxz,charset=utf8)
cur = conn.cursor(cursor=pymysql.cursors.DictCursor)
cur.execute(select * from my_user;)
all_data = cur.fetchall()  #数据库某表里面所有数据,输出为list形式,list中每个元素为表中的每行数据,每行数据为字典形式
#如:[{username: niuniu, is_admin: 0, id: 0, passwd: niuniu}, {username: xiaohei1234, is_admin: 0, id: 0, passwd: aA123456}, {username: gyx, is_admin: 0, id: 0, passwd: 123456}

for data in all_data: #data为表中每行数据,是字典 k = data.get(username) #将username的值获取,作为小key r.hset(stu_info_mkk,k,json.dumps(data)) #将data字典转为json字符串,新增到redis中 cur.close() conn.close()

 

      




以上是关于pythonpython操作redis的主要内容,如果未能解决你的问题,请参考以下文章

jedis连接redis

PythonPython中的列表操作

pythonpython操作剪切板-pyperclip模块

学习pythonpython可以从事哪些职位?

Pythonpython读取文件操作mysql

pythonpython进行debug操作