• 使用redis模块

一、操作redis

1、添加信息

(1)直接建key-value信息:

  • 右键-Add New Key,手动添加key和value

  • 右键-Console,打开控制台,写入命令

(2)建个文件夹,在文件夹里面建key-value信息:

只需在Add New Key的Key中建立文件夹名:key即可。

多个冒号就是多个文件夹。

2、存储类型

(1)String类型:

(2)哈希hash类型:

二、Python操作redis数据库步骤

1、导入redis模块

2、建立连接

3、写入命令

import redis

ip='xxx.xx.xx.xx'
password='' r=redis.Redis(host=ip,password=password,port=6379,db=1) res=r.get('lrx2')
print(res) #结果为:b'\xe5\x97\xafohyeah234324'
#结果是二进制类型的,需要将二进制类型的转成字符串类型 res.decode()
#.decode()是二进制类型转成字符串
print(res.decode()) #结果为:嗯ohyeah234324
#字符串转成byte二进制类型
res.encode()
#二进制转成字符串类型
res.decode()

三、操作命令——string类型

1、删除数据库里所有的key

  • 使用.flushdb()方法
r.flushdb()  #删除这个数据库里的所有Key

2、获取所有的key

  • 使用.keys('key')方法
print(r.keys('session*')) #获取所有的只以session开头的key

3、新增和修改

  • 使用.set('key','value')方法
r.set('lrx','sfdsdf1232')#新增和修改都是它

4、删除

使用.delete('key')方法

r.delete('lrx') #删除指定的key

5、获取值

  • 使用.get('key')方法
r.get('lrx') #获取key为lrx的value值

四、操作命令——哈希(hash)类型

格式:

二层字典

session={
"nhy":{'sex':'男','age':18},
"nhy2":{'sex':'男','age':18},
}

优点:

  • 管理方便,易于查找。
  • 返回值直接就是字典,不是字符串。

1、新增和修改

  • 使用.hset('key')方法
r.hset('lrx_stus','xiaohong','{"age":23,"addr":"上海"}')
#大key 小key

2、获取指定value值

  • 使用.hget('大key','小key')方法
res=r.hget('lrx_stu','xiaohong') #指定获取里面小key的值

3、获取所有的小key

  • 使用.hgetall('大key')方法
res=r.hgetall('lrx_stus') #获取到大key里面所有的数据
print(res)

4、删除大key

  • 使用.delete('大key')方法
r.delete('lrx_stus') #删除大key

5、删除小key

  • 使用.hdel('大key','小key')方法
r.hdel('lrx_stus','xiaojun') #删除指定的小key

6、返回值由二进制类型转为字符串类型

res=r.hgetall('lrx_stus') #获取到大key里面所有的数据
print(res) new={}
#1、先循环res
#2、k和v decode一下,放到new这个字典里面
for k,v in res.items():
new[k.decode()]=v.decode()
print('=====下面是转完之后的')
print(new) #结果为:
#{b'xiaojun': b'{"age":18,"addr":"\xe5\xa4\xa9\xe9\x80\x9a\xe8\x8b\x91"}'}
#<class 'dict'>
#=====下面是转完之后的
#{'xiaojun': '{"age":18,"addr":"天通苑"}'}

在连接数据库时直接加入参数:decode_responses=True,即可直接返回字符串类型数据,就不用再decode了。

五、设置redis失效时间

import flask
server=flask.Flask(__name__)
def get_redis(): #只返回连接redis的链接
return redis.Redis(**setting.redis_info) @server.route('/login',methods=['post','get'])
def login():
uname=flask.request.values.get('username')
pwd=flask.request.values.get('password')
if uname and pwd:
sql="select * from lrx_user_table where username='%s' and password='%s';" %(uname,pwd)
sessionid=tools.my_md5(uname)
login_time=time.strftime("%Y%m%d%H%M%S")
u_id=result[0].get('id')
r=get_redis()
r.set('lrx_session:%s'%u_id,sessionid,60) #存redis的key、value、失效时间

res={"error_code":200,"sessionid":sessionid,"login_time":login_time}
else:
res={"error_code":3001,"msg":"必填信息不全,请查看接口文档"}
return json.dumps(res,ensure_ascii=False,indent=4) @server.route('/pay',methods=['post'])
def pay():
uid=flask.request.values.get('userid')
m = flask.request.values.get('money')
sessionid = flask.request.values.get('session')
if uid and m and sessionid:
r=get_redis()
result=r.get('lrx_session:%s'%uid)
if sessionid==result:
sql="select balance from lrx_account_table where u_id='%s';" %uid
bal=tools.my_mysqldb(sql)[0].get('balance')
balance=float(bal)
res={"error_code":200,"msg":"ok"}
else:
res={"error_code":3003,"msg":"session已过期,请重新登录"}
else:
res={"error_code":3001,"msg":"必填信息不全,请查看接口文档"}
return json.dumps(res,ensure_ascii=False) server.run(**server_info)

Python之操作redis数据库的更多相关文章

  1. python 之操作redis数据库(非关系型数据库,k-v)

    数据库: 1. 关系型数据库 表结构 2. 非关系型数据库 nosql (k - v 速度快),常用的时以下三种: memcache 存在内存里 redis 存在内存里 mangodb 数据还是存在磁 ...

  2. Python【操作Redis数据库】

    Redis非关系型数据库,数据存放在计算机内存中,无SQL语句.Redis中有多种数据类型,比较常用的数据类型是string类型和hash类型.平时我们使用RedisDesktopManager来对R ...

  3. redis python 操作 Python操作Redis数据库

    原文章于此:https://www.cnblogs.com/cnkai/p/7642787.html 有个人修改与改正 Python操作Redis数据库   连接数据库 StrictRedisfrom ...

  4. 操作redis数据库 & 操作Excel & 开发接口

    操作redis数据库: string类型 1. 增 set,传俩个参数 key value(只要是字符串就行)2. 删 delete 传一个参数 key3. 修改 set 在目标key重新传参 key ...

  5. [转]使用python来操作redis用法详解

    转自:使用python来操作redis用法详解 class CommRedisBase(): def __init__(self): REDIS_CONF = {} connection_pool = ...

  6. Linux+Redis实战教程_day02_3、redis数据类型_4、String命令_5、hash命令_6、java操作redis数据库技术

    3. redis数据类型[重点] redis 使用的是键值对保存数据.(map) key:全部都是字符串 value:有五种数据类型 Key名:自定义,key名不要过长,否则影响使用效率 Key名不要 ...

  7. Python进阶学习_连接操作Redis数据库

    安装导入第三方模块Redis pip3 install redis import redis 操作String类型 """ redis 基本命令 String set(n ...

  8. python学习笔记(十六)python操作redis数据库

    Redis是一个key-value存储系统,它支持丰富的数据类型,如:string.list.set.zset(sorted set).hash. Redis特点 Redis以内存作为数据存储介质,所 ...

  9. 使用python来操作redis用法详解

    1.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRe ...

随机推荐

  1. Entity Framework 5.0.0 Function Import 以及 ODP. NET Implicit REF CURSOR Binding使用简介

    源代码 概要: 1,说明如何使用Entity Framework中的function import功能. 2,说明如何使用ODP.NET的隐式REF CURSOR绑定(implicit REF CUR ...

  2. 给html标签加上鼠标划过小手样式

    给html标签加上鼠标划过小手样式 方法:给当前标签增加样式 style="cursor:pointer;" eg:增加返回箭头样式,给箭头增加小手 <span onclic ...

  3. Emacs中多个golang项目的配置方法

    概述 最近使用golang开发项目时, 发现有时需要同时进行多个golang项目. 在这种情况下, 如果把所有的项目都放在 GOPATH 之下, 不仅管理麻烦(因为各个项目需要提交到不同的代码库), ...

  4. Linux 小知识翻译 - 「邮件服务器」

    这次聊聊「邮件服务器」. 邮件服务器上通常会运行2个服务端软件,「SMTP服务器」和「POP服务器或者IMAP服务器」. 这2个东西,也许使用邮件客户端的人立马就明白了.因为设置邮件客户端的时候,需要 ...

  5. Unity琐碎(3) UGUI 图文混排解决方案和优化

    感觉使用Unity之后总能看到各种各样解决混排的方案,只能说明Unity不够体恤下情啊.这篇文章主要讲一下个人在使用过程中方案选择和优化过程,已做记录.顺便提下,开源很多意味着坑,还是要开实际需求. ...

  6. js FormData方法介绍

    1. 概述 FormData类型其实是在XMLHttpRequest 2级定义的,它是为序列化表以及创建与表单格式相同的数据(当然是用于XHR传输)提供便利. 2. 构造函数 创建一个formData ...

  7. sftpdrive mtputty

    https://blog.csdn.net/junli_chen/article/details/77527250?locationNum=2&fps=1

  8. spring boot 的maven设置阿里云仓库

    <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> ...

  9. python之常用模块(续)

    time模块 random模块 sys模块 os模块 序列化模块  time模块 有三种方式表示 在Python中,通常有三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串 ...

  10. centos7下安装docker(21docker swarm集群创建)

    创建swarm集群: 实验环境:盗图 swarm-manager是manager node,swarm-worker1和swarm-worker2是worker node. 所有节点的docker版本 ...