当前位置: 首页 > news >正文

淘客招商网站选品库建设王建设的网站

淘客招商网站选品库建设,王建设的网站,潍坊网站排名优化,刘涛给孩子网站做的广告文章目录1.认识Redis1.1.优点1.2.缺点2.在Django中Redis的连接3.Redis的基础用法3.1.hashmap结构3.2.list结构4.命令行查看数据库5.作者答疑1.认识Redis Remote DIctionary Server(Redis) 是一个key-value 存储系统#xff0c;是跨平台的非关系型数据库。是一个开源的使用 AN… 文章目录1.认识Redis1.1.优点1.2.缺点2.在Django中Redis的连接3.Redis的基础用法3.1.hashmap结构3.2.list结构4.命令行查看数据库5.作者答疑1.认识Redis Remote DIctionary Server(Redis) 是一个key-value 存储系统是跨平台的非关系型数据库。是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库并提供多种语言的 API。Redis 通常被称为数据结构服务器因为值value可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。 1.1.优点 它是内存数据库速度快也支持数据的持久化可以将内存中的数据保存在磁盘中重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据同时还提供listsetzsethash等数据结构的存储。Redis支持数据的备份即master-slave模式的数据备份。支持事务。 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。 原子 – Redis的所有操作都是原子性的同时Redis还支持对几个操作合并后的原子性执行。事务 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。 1.2.缺点 数据存储在内存主机断电则数据丢失。 存储容量受到物理内存的限制只能用于小数据量的高性能操作。 在线扩容比较困难系统上线时必须确保有足够的空间。 用于缓存时易出现’缓存雪崩‘’缓存击穿‘等问题。 2.在Django中Redis的连接 安装Redis组件: Django4.0才原生支持RedisDjango3.2中需要通过第三方组件库进行配置。 pip install django-redis # 安装Redis缓存后端 (基于并自动安装redis-py驱动)编写Redis配置: 在Django项目配置文件的CACHES配置字典中进行缓存系统、客户端连接参数或连接池连接参数。 #配置缓存 CACHES {default: {VERSION: 1, # 默认缓存版本KEY_PREFIX: ZhiLiaoAI, # 默认缓存前缀推荐用项目名TIMEOUT: 60 * 5, # 默认过期时间300秒BACKEND: django_redis.cache.RedisCache,LOCATION: [redis://127.0.0.1:6379/1, ], # 服务器列表第一个为主服务器其余为副本服务器OPTIONS: {CLIENT_CLASS: django_redis.client.DefaultClient,PASSWORD: ,SOCKET_CONNECT_TIMEOUT: 5, # 秒级连接超时时间SOCKET_TIMEOUT: 5, # 秒级读写超时时间IGNORE_EXCEPTIONS: True, # 是否忽略连接异常CONNECTION_POOL_KWARGS: { # redis.ConnectionPool的参数max_connections: 100, # 连接池最大数量}}} }SESSION_ENGINE django.contrib.sessions.backends.cache SESSION_CACHE_ALIAS default#DJANGO_REDIS_LOGGER logger_name # 使用哪个日志记录器记录忽略的异常 DJANGO_REDIS_IGNORE_EXCEPTIONS True # 是否忽略所有缓存的连接异常 DJANGO_REDIS_LOG_IGNORED_EXCEPTIONS True # 是否在忽略异常时通过日志记录该异常[注意事项] 提交到缓存系统中的value值必须为pickable的. 3.Redis的基础用法 在使用过程中首先注意编码问题可以指定代码为utf-8如下所示 # -*- coding: utf-8 -*- from django.http import HttpResponse from django.shortcuts import render from web import models from django.core.cache import cache from django_redis import get_redis_connection# Create your views here. def index(request):redis_conn get_redis_connection(default)redis_conn.set(name, 中国)print(str(redis_conn.get(name),utf-8))#解码return HttpResponse(Hello world ! );永不超时设置 django-redis 支持永不超时设置。 其表现和 django backend 指定的相同: timeout0 立即过期 timeoutNone 永不超时 cache.set(key, value, timeoutNone)locks django-redis 支持 redis 分布式锁. 锁的线程接口是相同的, 因此你可以使用它作为替代. 使用 python 上下文管理器分配锁的例子: with cache.lock(somekey):do_some_thing()数据类型 redis是一种高级的键值对key:value存储系统非关系型数据库Nosql,其中value支持五种数据类型 1.字符串strings 2.字符串列表lists 3.字符串集合sets 4.有序字符串集合sorted sets 5.哈希hashes 3.1.hashmap结构 redis-hash函数常用操作方法 1.hset(name, key, value) ---- 更新一条数据的属性没有则新建 2.hget(name, key) ---- 读取这条数据的指定属性 返回字符串类型 3.hmset(name, mapping) ---- 批量更新数据没有则新建属性 4.hmget(name, keys, *args) ---- 批量读取数据没有则新建属性 5.hgetall(name) ---- 获取这条数据的所有属性和对应的值返回字典类型 6.hkeys(name) ---- 获取这条数据的所有属性名返回列表类型 7.hdel(name, *keys) ---- 删除这条数据的指定属性 import redisr redis.Redis(host127.0.0.1, port6379, db0) # 新建一条键名为123456的数据, 包含属性attr_1 r.hset(123456, attr_1, 100) # 更改键名为123456的数据, 更改属性attr_1的值 r.hset(123456, attr_1, 200)# 取出属性attr_1的值 attr_1 r.hget(123456, attr_1)# 输出看一下(发现属性值已经为str) print -- get attr_1:, attr_1# 属性集合 attr_dict {name: 常成功,alias: 常城,sex: male,height: 175,postal code: 100086,Tel: None, } # 批量添加属性 r.hmset(123456, attr_dict)# 取出所有数据(返回值为字典) h_data r.hgetall(123456)# 输出看一下(取出来的时候都变成了str) print(-- get all attr:, h_data)# 删除属性(可以批量删除) r.hdel(123456, Tel)# 取出所有属性名 h_keys r.hkeys(123456)3.2.list结构 lpush命令将一个或多个值插入到列表头部。 如果 key 不存在一个空列表会被创建并执行lpush操作。 当 key 存在但不是列表类型时返回一个错误。执行lpush命令后返回列表的长度。 print(r.lpush(1,1)) #输出的结果是1 print(r.lpush(1,1)) #输出的结果是2 print(r.lpush(1,2,3,4)) #输出的结果是5print(r.set(2,1)) #输出的结果是 True print(r.lpush(2,2)) #输出的结果是 redis.exceptions.ResponseError: WRONGTYPE Operation against a key holding the wrong kind of value,原因是键 2 是字符串类型我们用list中的lpush给他添加元素rpush命令用于将一个或多个值插入到列表的尾部(最右边)。如果列表不存在一个空列表会被创建并执行 RPUSH 操作。 当列表存在但不是列表类型时返回一个错误。执行rpush操作后列表的长度。 print(r.rpush(2,1)) #输出的结果是1 print(r.rpush(2,2,3)) #输出的结果是3 print(r.rpush(2,4,5)) #输出的结果是5blpop 命令移出并获取列表的第一个元素 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。如果列表为空返回一个 None 。 否则返回一个含有两个元素的列表第一个元素是被弹出元素所属的 key 第二个元素是被弹出元素的值。 print(r.rpush(3,1,2,3,4,5,6,)) #输出的结果是6 print(r.blpop(3)) #输出的结果是(3, 1) print(r.blpop(3)) #输出的结果是(3, 2) print(r.blpop(3)) #输出的结果是(3, 3) print(r.blpop(4,timeout2)) #因为键 4 不存在所以2秒后输出的结果是NoneBrpop 命令移出并获取列表的最后一个元素 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。假如在指定时间内没有任何元素被弹出则返回一个None 和等待时长。 反之返回一个含有两个元素的列表第一个元素是被弹出元素所属的 key 第二个元素是被弹出元素的值。 print(r.rpush(4,1,2,3,4,5,6,)) #输出的结果是6 print(r.brpop(4)) #输出的结果是(4, 6) print(r.brpop(4)) #输出的结果是(4, 5) print(r.brpop(4)) #输出的结果是(4, 4) print(r.brpop(5,timeout2)) #因为键 4 不存在所以2秒后输出的结果是Nonellen命令用于返回列表的长度。 如果列表 key 不存在则 key 被解释为一个空列表返回 0 。 如果 key 不是列表类型返回一个错误。 print(r.llen(8)) #key 不存在输出的结果是0 print(r.rpush(8,1)) #输出的结果是1 print(r.llen(8)) #输出的结果是1 print(r.rpush(8,2,3)) #输出的结果是3 print(r.llen(8)) #输出的结果是3lrange返回列表中指定区间内的元素区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素 1 表示列表的第二个元素以此类推。 你也可以使用负数下标以 -1 表示列表的最后一个元素 -2 表示列表的倒数第二个元素以此类推。 print(r.rpush(11,1,2)) #输出的结果是2 print(r.rpush(11,3,4)) #输出的结果是4 print(r.lrange(11,0,-1)) #输出的结果是[1, 2, 3, 4] print(r.lrange(11,1,2)) #输出的结果是[2, 3]lset通过索引来设置元素的值。当索引参数超出范围或对一个空列表进行lset时返回一个错误。操作成功返回True否则返回错误信息。 print(r.rpush(13,1,2,3,4)) # 输出的结果是4 print(r.lset(13,1,5)) # 输出的结果是True print(r.lrange(13,0,-1)) # 输出的结果是[1, 5, 3, 4]4.命令行查看数据库 redis的数据库个数是可以配置的默认为16个。对应数据库的索引值为0 - (databases -1)即16个数据库索引值为0-15。默认使用第0个数据库可使用select进行数据库切换redis命令是不区分大小写的,当切换db成功时可以看到当前使用的是哪一个db。双击打开安装路径下的redis-cli.exe。然后输入命令: select 1 #切换到1号数据库默认del key #删除keyflushall #清空数据库结果如下图所示 5.作者答疑 如有疑问欢迎留言。
http://www.hkea.cn/news/14315820/

相关文章:

  • 自己做网站的成本要哪些东西discuz转wordpress
  • 深圳有哪些做网站公司好定制型网站制作明细报价表
  • 17一起做网站童装如何提高网站用户体验
  • 网站文章质检哪些经营范围是包含网站开发的
  • 给女友惊喜做网站简述网站开发的基本原则
  • 网站的ftp账号和密码是什么杭州智能模板建站
  • 执法局网站建设目的电脑商业网站怎的做
  • 深圳品牌网站建设网站设计方案公司
  • 微网站建设合同自助建站软件排行榜
  • 南宁网站建设设计网站添加微博
  • 全国建设建管中心网站网站开发流程人物
  • 什么叫做网站整站网站一直百度上搜不到是怎么回事啊
  • 人工做流量的网站北京网页制作电话
  • 网站app开发哪家好门户网站ip地址段
  • 做钓鱼网站要具备什么seo入门版
  • 现在做什么行业最赚钱最稳单页网站排名优化
  • 杭州做网站的公司哪些比较好网站建设前置审批
  • 学校网站管理与建设办法网站开发类app
  • 爱名网22自助网站建设网站建设中faqs的意思
  • 网站keywords重复解决方法范县网站建设公司
  • 平湖公司做网站网站建设hairongsoft
  • 查看网站被百度收录电影制作专业
  • 做商城网站怎么做网站用ps下拉效果怎么做
  • 企业网站托管电话网站建设需要备案吗
  • 苏州营销型网站开发公司七牛云wordpress图床
  • 网站服务器中如何做重定向漳州公司注册
  • 做爰xo的视频网站试看申请网站空间就是申请域名
  • 网站建设公司找客户网站怎么优化搜索
  • 怎么用易语言做网站网站开发需要多少费用
  • 房产智能建站系统装饰工程施工组织设计