redis

----redis、MongoDB : 非关系型数据库

redis   存储在内存中

MongoDB 存储在硬盘中

简介

redis是一个key-value存储系统 , 支持持久化 。

----补充 :比较redis 和 memcached

----redis 支持5大数据类型

----redis 支持持久化

----redis 单线程 , 单进程 , 速度依旧很快(瞬时并发量10w)

----memcached 不能持久化 , 只支持字符串 , 多线程多进程

作用

----做缓存

---- session数据

---- 游戏排行榜

---- 对速度要求比较高的数据的存储

---- 消息队列

五大数据类型 ★★★★★

redis = {

k1:'123',

k2: [1,2,3,4],

k3: {1,2,3,4},

k4: (1,2,3,),

k5: {('lqz',123), ('xxx',234)}

}

字符串

列表

字典

集合

有序集合

redis的使用

set(name, value, ex=None, px=None, nx=False, xx=False)

在Redis中设置值,默认,不存在则创建,存在则修改
参数:
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行,值存在,就修改不了,执行没效果
xx,如果设置为True,则只有name存在时,当前set操作才执行,值存在才能修改,值不存在,不会设置新值

get(self, name)

取出name对应的value

mset(self, mapping)

批量添加值 参数: 映射类型(如 字典)

mget(self, keys, *args)

批量获取值 参数: 想要获取的keys,返回值为列表 mget(['name', 'age', 'mykey1']) or mget('name', 'age', 'mykey1')

inrc(self, name, account=1)

自增, 传入需要自增的key(name), 默认每次自增1, 可以自己设定 通常被用来做访问量计数

decr(self, name, account=1)

自增, 传入需要自增的key(name), 默认每次自减1, 可以自己设定

append(self, name, value)

在对应的值后面追加内容 , 返回值为value的长度 如   'xx' -->  'xx11'

其他方法及使用

方法

用途

setnx(name, value)

设置值, 只有name不存在时, 执行设置操作(添加),如果存在, 不会修改

setex(name, value, time)

设置值, time过期时间(数字秒或timedalta对象)

psetx(name, time_ms, value)

设置值, time过期时间(数字毫秒或timedalta对象)

getset(name, value)

设置新值并返回原来的值

strlen(name)

返回name对应的字节长度(汉字3字节)

import redis  

# 建立连接   Redis类中有许多属性,以下简单用了几个,详细了解可以看源码
connect = redis.Redis(port='127.0.0.1', host=6379, password='') # res = conn.set('name', 'jason', ex=5)
# res = conn.get('name')
# res = conn.mset({'name': 'jason', 'age': 24})
# res = conn.mget(['name', 'age', 'mykey1'])
# res = conn.incr('age')
# res = conn.decr('age')
# res = conn.append('name', 'nb')
print(res)

在Django中使用redis


在所需的app中新建连接池py文件

# redis_pool.py 

import redis  

# 配置redis数据库的相关信息(host,port,password,max_connections(默认2**31)) 

POOL = redis.ConnectionPool(host='127.0.0.1', port=6379, password=123456,max_connections=100)

在试图类中进行操作

from app01.redis_pool import POOL
def settest(request):
conn = redis.Redis(connection_pool=POOL)
conn.set('token', 'abcdefg')
return HttpResponse('写入成功') def gettest(request):
conn = redis.Redis(connection_pool=POOL)
token = conn.get('token') return HttpResponse(token)

l  在路由层分发路由

url(r'^settest/', views.settest),
url(r'^gettest/', views.gettest)

redis的字符串操作以及在django中的使用的更多相关文章

  1. Python后端日常操作之在Django中「强行」使用MVVM设计模式

    扫盲 首先带大家了解一下什么是MVVM模式: 什么是MVVM?MVVM是Model-View-ViewModel的缩写. MVVM是MVC的增强版,实质上和MVC没有本质区别,只是代码的位置变动而已 ...

  2. python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis

    今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...

  3. Django中cookie和session的操作

    一.cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是 ...

  4. Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件mysql数据库,版本5.7 ...

  5. PHP开发中常用的字符串操作函数

    1,拼接字符串 拼接字符串是最常用到的字符串操作之一,在PHP中支持三种方式对字符串进行拼接操作,分别是圆点.分隔符{}操作,还有圆点等号.=来进行操作,圆点等号可以把一个比较长的字符串分解为几行进行 ...

  6. 137.在Django中操作session

    在Django中操作session 在django中session默认情况下是存储在服务器的数据库中的,在表中会根据sessionid来提取指定的session数据,然后再把这个sessionid放到 ...

  7. Django中的模型(操作数据库)

    目录 Django配置连接数据库 在Django中操作数据库 原生SQL语句操作数据库 ORM模型操作数据库 增删改查 后台管理 使用后台管理数据库 模型是数据唯一而且准确的信息来源.它包含您正在储存 ...

  8. celery在Django中的集成使用

    继上回安装和使用Redis之后,看看如何在Django中使用Celery.Celery是Python开发分布式任务列队的处理库.可以异步分布式地异步处理任务,也可定时执行任务等等.通常我们可以在Dja ...

  9. django中的跨表查询梳理

    1.前言 最近在写一个小项目,里面主要涉及的就是表与表之间复杂的关系.当真正开发起来的时候,才发现自己对复杂的表关系间的查询有点混乱,趁着这几天的时间,重新梳理了一下. 2.概念 在开始之前,先明确几 ...

随机推荐

  1. hdu4403- A very hard Aoshu problem(搜索)

    枚举等号的位置,然后暴力搜索一波 这个题本身不难,但它是我第一次使用对拍程序来查找错误,值得纪念. #include<cstdio> #include<string.h> #i ...

  2. Column 'xxx' in field list is ambiguous

    一 其实看一下ambiguous的翻译就好了 一开始我觉得是含糊什么的,后来找了下才知道应该是双关... 二 所以翻译过来就是 : 列'XX'在字段列表中双关 其实就是两张表有相同的字段,但是使用时, ...

  3. springboot+shiro+cas实现单点登录之cas server搭建

    CAS是YALE大学发起的一个开源项目,旨在为web应用系统提供一种可靠的单点登录方法.它主要分为client和server端,server端负责对用户的认证工作,client端负责处理对客户端受保护 ...

  4. [转载]—Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1)

    Health Check Reports Problem: Dependency$ p_timestamp mismatch for VALID objects (文档 ID 781959.1) AP ...

  5. 本号讯 | 人工智能手表为帕金森患者带来书写希望;微软翻译发布可实时翻译幻灯片的Presentation Translator

    7 月 12 日,微软成立微软研究院人工智能中心(Microsoft Research AI).这是一个隶属于微软研究体系内的科研和孵化中心,将聚焦于解决最复杂的人工智能挑战. 这支由科学家和工程师组 ...

  6. Python +selenium之设置元素等待

    注:本文转载http://www.cnblogs.com/mengyu/p/6972968.html 当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给元素的定位增加了困难.如果因为在加 ...

  7. 用NPOI操作EXCEL-锁定列CreateFreezePane()

    public void ExportPermissionRoleData(string search, int roleStatus) { var workbook = new HSSFWorkboo ...

  8. hdparm - 获取/设置硬盘参数

    总览 hdparm [ -a [扇区数] ] [ -A [0|1] ] [ -c [芯片组模式] ] [ -C ] [ -d [0|1] ] [ -f ] [ -g ] [ -i ] [ -k [0| ...

  9. Array - Container With Most Water

    /** * 此为暴力解法 * Find two lines, which together with x-axis forms a container, such that the container ...

  10. epoch,iteration,batch,batch_size

    epoch:训练时,所有训练图像通过网络训练一次​(一次前向传播+一次后向传播):测试时,所有测试图像通过网络一次​(一次前向传播).Caffe不用这个参数. batch_size:1个batch包含 ...