Python学习笔记(十九)—redis的操作

Redis是一个非关系型数据库,它没有数据表、没有SQL语句;数据值的存储是以K-V的形式来存储的。我们可以使用redis图形化工具来操作redis也可以使用Python来对其进行操作。

一、使用工具操作redis

1、安装RedisDesktopManager这个软件

  软件的安装不在介绍,直接傻瓜式安装即可

2、安装完成后打开后如下图界面,点击connect

 

3、配置完成后再左边框,你可以看到自己配置的数据库连接,点击进入数据库,显示该下面可以操作的库,默认在db0库里面

 

 

4、选择db1库右击,给出坦克,选择Add new key 可以添加一个数据

 

 

 

 

 

 5、添加内容的删除

 

 

注意:上图右上角的TTL值代表的是这个数据在内存中存在的时间,如果等于-1表示永久生效,如果为其它则表示在固定的时间内生效(单位秒)

6、添加内容的修改,也是如上图,在value上直接修改,修改完成后点击保存即可。

7、在创建的Test_Redis上右击,选择console进入DOS页面也可以直接操作

Test_Redis:0>select 1  切换当前的库

Test_Redis:1>set age 19  给当前的库添加数据

Test_Redis:1>get age   获取当前key为age的value值

Test_Redis:1>set python:test 123  在当前库里面添加一个名为Python的文件,文件下边有名称为:Python:test,value值为123的一条数据

 

 

 二、使用Python操作redis

针对string类型的数据的操作

1、添加、修改数据

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcdef'
r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379
r.set('sex','')  #添加数据
r.set('sec','女') #修改数据
r.set('name','这是一个测试!',60) #新增和修改数据k-v-失效时间,默认-1,永远生效;60代表一分钟内生效;

2、读取数据

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcdef'
r = redis.Redis(host=ip,password=password,db=1) #连接redis,,默认值port=6379
res = r.get('sex').decode()  #获取key=sex的value值;且获取的结果是一个二进制类型的数据,所以需要decode转成字符串类型的数据
print(res)  
import redis  #导入模块
ip = '1.1.1.1'
password = 'abcdef'
r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379
res = r.get('sex') #获取key=sex的value值;且获取的结果是一个二进制类型的数据,所以需要decode转成字符串类型的数据
print(res)  

注意:如果连接数据库的时候加入了参数decode_responses=True,那么在读取数据的时候就不需要在进行转码操作

3、删除数据

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcdef'
r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379
r.delete('sex1') #删除key=sex1的value值

4、删除所有的数据

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcdef'
r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379
r.flushdb() #删除这个数据库里所有的key

5、其它操作

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcdef'
r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379
r.set('java:test','JAVA-language') #在数据库中添加了一个名词为JAVA的文件夹,文件夹下有数据key:java:test,value:JAVA-language
print(r.keys())  #获取所有key
print(r.keys('*a*'))  #获取所有key中包括a字母的key
import redis  #导入模块
ip = '1.1.1.1'
password = 'abcdef'
r = redis.Redis(host=ip,password=password,port=6379,db=1) #连接redis,默认值port=6379
#读取所有数据库中key的值
key_list = []
for i in r.keys():
    key_list.append(r.get(i))
    print('key:%s,value:%s'%(i,r.get(i)))
print(key_list)

针对哈希类型的数据的操作

 hash类型的数据实际上就是一个二层嵌套的字典,如下:

session = {
"name":{'sex':18,'age':19},
"add":{'sex':20,'age':21}
}

1、增加、修改数据

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcde'
r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379
r.hset('syz_stus','test','21345')  #存储hash类型的数据的是格式:K-k-v,如上面的格式 ,添加hash类型数据
r.hset('syz_stus','test','哈哈哈')  #数据hash类型数据值

2、读取数据

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcde'
r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379
res = r.hget('syz_stus','test')  #获取某一个小key的值
res1 = r.hgetall('syz_stus') #以字典的格式获取到大K里面所有的数据,格式是二进制类型
print(res,res1)

 

3、删除数据

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcde'
r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379
r.hdel('syz_stus','test') #删除指定的小K的数据
r.delete('syz_stus') #删除整个大K的所有数据

4、循环操作获取所有hash类型数据的值

import redis  #导入模块
ip = '1.1.1.1'
password = 'abcde'
r = redis.Redis(host=ip,password=password,db=1,decode_responses=True) #连接redis,,默认值port=6379
res = r.hgetall('syz_stus')  #以字典的格式获取到大K里面所有的数据,格式是二进制类型
print(res)
new = {}
for k,v in res.items():
    new[k] = v
print('============')
print(new)

 

posted on 2020-03-25 17:29  随风迎  阅读(313)  评论(0编辑  收藏  举报

导航