pyhton:操作redis

Posted study!!!

tags:

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

一、redis介绍

redis是一种非关系型数据库:没有表结构,没有字段,没有sql语句。只是用get获取数据,set插数据,类似字典。比如mangodb,redis
redis的数据全存在内存,redis本身每秒支持30万次读写,性能很好。但是没办法持久化,redis一重启就没了

二、redis数据库的连接

redis数据库连接时要引入redis模块,这是个第三方模块,需要安装,安装后引入

import redis

r=redis.Redis(host=\'192.168.10.1\',password=\'*&&*1254\',db=1,port=6379)#host是redis数据库服务器ip,db可根据实际情况进行连接。port默认是6379,根据实际情况填写

三、redis数据类型

1、string

string类型就是简单的key-value.,可以通过get和set方法获取和设置值

#增删改查
# r.set(\'dfdf\',\'帅\')#增加和修改都用set。其实带有四个参数,如果不写明,则默认ex=None, px=None, nx=False, xx=False
\'\'\'参数:
     set(name, value, ex=None, px=None, nx=False, xx=False)
     ex,过期时间(秒)
     px,过期时间(毫秒)
     nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
     xx,如果设置为True,则只有name存在时,当前set操作才执行\'\'\'

r.set(\'aaa\',\'2\',nx=True)如果存在aaa,则不会修改aaa的值,如果不存在,会创建aaa,等同于r.setnx(\'aaa\',\'2\')
r.set(\'aaa\',\'2\',ex=10)等同于r.sexex(\'aaa\',\'2\',10)
r.set(\'aaa111\',\'2\',xx=True)存在key则修改,如果不存在,不执行

r.psetex(name, time_ms, value)#设置过期时间毫秒.等同于r.set(\'aaa\',\'2\',px=20000)
#设置过期时间(豪秒)
# r.delete(\'dfdf\')#删除,指定key即可
# r.setex(\'zy\',\'hhhh\',10)#设置失效时间。10秒后key就删除了
# print(r.get(\'hwt\').decode())#直接获取是个二进制,用decode方法将二进制转变成字符串
# print(r.keys())#获取到所有的key
# print(r.keys(\'niu*\'))#查出所有以niu开头的key
# print(r.get(\'lynn\'))#get一个不存在的key,返回none

# r.set(\'双子座zy:zy\',\'放在文件夹中\')#key前加上冒号:,冒号前的就是文件夹
# r.set(\'双子座zy:zy:01\',\'多层文件夹\')
# r.get(\'双子座zy:zy\')


# for k in r.keys:#循环遍历所有的key,然后删除
#     r.delete(k)

 

mset()

#批量设置值
r.mset(name1=\'zhang\', name2=\'lisi\')
#
r.mget({"name1":\'zhang\', "name2":\'lisi\'})

mget(keys, *args)

#批量获取
print(r.mget("name1","name2"))
#
li=["name1","name2"]
print(r.mget(li))

2、hash类型

类似嵌套字典,key对应的还是个key-value;数据库中存储如下sessionzy就是对应的还是一个key-value

 

操作:

# r.hset(\'sessionzy\',\'hhh\',\'1nnfjdfjebfdfd\')#哈希插入数据用hset.参数中第一个是外层,然后第二个是key,第三个是value
# print(r.type(\'stu_info\'))#查看key的类型

# print(r.hget(\'stu_info\',\'1212\').decode())#获取哈希类型数据用hget.第一个参数是外层key,第二个参数是内层key
# print(r.hgetall(\'stu_info\'))#获取key内的所有key-value,二进制

# r.hdel(\'stu_info\',\'哈哈哈\')#删除指定的key
# r.delete(\'stu_info\')#删除整个key
#r.expire(\'aaa\',100)#设置key失效时间,不管是string还是hash都可使用
# print(r.ttl(\'jd\'))#获取key还有多久失效
# dic={}
# for k,v in r.hgetall(\'stu_info\').items():#循环将所有key,value转换成字符串
#     dic[k.decode()]=v.decode()
# print(dic)
# r.hset(\'sessionzy\',\'zhangyao\',{\'session\':\'wewewe\',\'logintime\':232323})
# print(type(r.hget(\'sessionzy\',\'zhangyao\').decode()))

 

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

pyhton—opencv直线检测(HoughLines)找到最长的一条线

pyhton—opencv直线检测(HoughLines)找到最长的一条线

Redis操作hash

代码学习PYHTON 元组

jedis连接redis

pyhton3之进程