redis是一个非关系型数据库。
数据库包括非关系型数据库和关系型数据库。
1、关系型数据库:mysql/oracle/sql server/db2/sqlite 数据是存在磁盘上的
2、非关系型数据库:
mongodb/redis 没有表结构,没有sql语句,没什么字段。速度比关系型数据库快,redis数据是存在内存上的,redis本身性能非常,每秒支持30万次读写。缺点是没有办法持久化(重启redis可以备份数据到磁盘里面,启动的时候再次读取磁盘的数据到内存,这种方法可以实现持久化)
以下是python操作redis的一些基本方法
import redis
r=redis.Redis(host='xx.xx.xx.xx',password='HK139bc&*',db=1,port=6379) #默认端口号如果不修改就是6379,db指定用哪个数据库
#增删改查,这些操作都是针对string类型的
r.set('niuh','帅') #数据库里面新增一个值,修改也是set
r.set('niuh','niuniuniu') #修改niuh的value为niuniuniu
r.delete('niuhany') #删除
r.setex('python_123','哈哈哈',20)#设置key的失效时间,最后的参数是秒
hwt=r.get('niuh')
print(hwt.decode()) #\xe5\xb8\x85 二进制转为字符串decode,字符串转二进制encode
s='哈哈'
print(s.encode()) #字符串转二进制encode
print(r.keys('*xxx*'))#获取到所有的key
print(r.get('sdf'))
r.set('天蝎座:mpp','呵呵呵') #key有冒号,冒号前面的就是文件夹名称
r.get('天蝎座:mpp')
#以下操作是针对哈希类型 ,hash类型即是嵌套字典
for k in r.keys(): #删除所有的key
r.delete(k)
r.hset('stu_info','刘伟','1m8 100w存款')
r.hset('stu_info','张流量','浪,为了不交作业,故意让狗咬他')
r.hset('stu_info','董春光','为了不交作业,找了一条狗咬张流量,然后陪张流量去医院')
print(r.type('stu_info')) #查看key类型
print(r.hget('stu_info','张流量').decode())#指定大key和小key获取对应的数据
print(r.hgetall('stu_info'))#获取里面所有的k和v,打印出来的是二进制
stu_info=r.hgetall('stu_info') #获取所有的k,v并且一个个打印出来
new_stu_info={}
for k,v in stu_info.items():
new_stu_info[k.decode()]=v.decode()
print(new_stu_info)
r.expire('aa',100)
r.hdel('stu_info','gyz') #删除指定key
r.delete(('stu_info')) #删除整个key
#pymysql、json、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='xx.xx.xx.xx',password='HK139bc&*',db=3,port=6379)
coon = pymysql.connect(host='xx.xx.x.x',user='jxz',passwd='123456',db='jxz',charset='utf8')
cur = coon.cursor(cursor=pymysql.cursors.DictCursor) #指定返回字典
cur.execute('select * from my_user;')
all_data = cur.fetchall() #获取数据库查询所有的返回结果
for data in all_data:
k = data.get('username')
# print(k)
# print(json.dumps(data))
r.hset('stu_info_cfj',k,json.dumps(data)) #字典转成json串再传入hash
cur.close()
coon.close()
来源:https://www.cnblogs.com/xiaojing2017/p/9040069.html