接口测试学习-python第六课(redis)
redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。但是redis不是常用的SqlServer、mysql类型的数据库。两者的区别为前者是菲关系型数据库,后者是关系型数据库。
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。
非关系型数据库又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL( Structured QueryLanguage,结构化查询语言),据维基百科介绍,NoSQL最早出现于1998 年,是由Carlo Storzzi最早开发的个轻量、开源、不兼容SQL 功能的关系型数据库。这次学习的redis是key-value形式的非关系型数据库。这样的数据库没有那么多的结构,但是处理速度很快。
1、链接数据库
如下图所示,点击connect按钮后,输入名称、IP地址、端口号和密码点击OK即可。链接完成后会在界面左方出现数据库,如118.24.3.40一样。
2、在redis上操作数据库
如下图,右键数据库,选择console,再在右边界面下方输入命令即可。
3、利用python操作redis数据库
一下是一些对rediis的基础操作
1 import redis 2 # 链接数据库 3 r = redis.Redis(host='118.24.3.40', password='HK139bc&*', db=1, port=6379) 4 # 针对string类型的数据的增删改查操作 5 keyname = 'double' 6 r.set('gyx_info:%s' % keyname, '20180505') # 往数据库中新增一个值,修改也可以用set 7 r.delete('gyx_info:double') # 删除数据 8 r.setex('date', '一一一', 3600) # 设置key的失效时间,最后的参数是秒,int型 9 gyx = r.get('双子座:1993:syz') 10 print(gyx.decode()) # 将二进制数据转为字符串 11 s = 'gyx111' 12 print(s.encode()) # 将字符串转为二进制 13 print(r.keys()) # 获取到所有的key,放在一个list中 14 print(r.keys('*y*')) # 找到所有key中包含‘111’的数据,*是通配符 15 r.set('双子座:gyx', 'heheh') # key中用英文冒号分割数据,冒号前面的就是文件夹名字,'双子座:gyx'是key 16 r.set('双子座:1993:syz', 'onetwo') # 如果要多层文件夹那就多个冒号,冒号一定得是英文 17 for key in r.keys(): # 删除所有的key 18 r.delete(key) 19 20 21 #针对hash类型的增删改查操作 22 r.hset('stu_info', 'gyx', '中彩票') # 第一个key是外部的大key,然后第二个数据是hash类型的key,最后是value值 23 print(r.hget('stu_info','gyx').decode()) # 先指定外部大key,然后根据小key获取对应数据 24 print(r.hgetall('stu_info')) # 获取hash里面所有的key和value 25 dics = r.hgetall('stu_info') 26 new_dic = {} # 将获取到的key和value转为字符串格式 27 for key, value in dics.items(): 28 key = key.decode() 29 value = value.decode() 30 new_dic[key] = value 31 print(new_dic) 32 r.hdel('stu_info','gyx') # 删除指定的key 33 r.delete('stu_info') # 删除所有的key 34 print(r.ttl('aaa')) # 获取这个key的失效时间 35 r.expire('aaa',100) # 对一个key设置失效时间