11.13git和redis

2018-11-13 15:46:40

git完结

redis完结,

还剩一点路飞项目!!!做完回学校!!!!

越努力,越幸运!永远不要高估自己!

关于 redis具体使用可以参考: http://www.cnblogs.com/wupeiqi/articles/5132791.html 

在Django中使用redis 可以参考 : http://www.cnblogs.com/wupeiqi/articles/5246483.html

 

1.自定义链接redis:

utils.py

import redis

POOL = redis.ConnectionPool(host='10.211.55.4', port=6379,password='luffy1234',max_connections=1000)

views.py

import redis
from django.shortcuts import render,HttpResponse
from utils.redis_pool import POOL

def index(request):
    conn = redis.Redis(connection_pool=POOL)
    conn.hset('kkk','age',18)

    return HttpResponse('设置成功')
def order(request):
    conn = redis.Redis(connection_pool=POOL)
    conn.hget('kkk','age')

    return HttpResponse('获取成功')

urls.py

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', views.index),
    url(r'^order/', views.order),
]

2. 手动操作redis

views.py      pip3 install django-redis

import redis
from django.shortcuts import render,HttpResponse
from django_redis import get_redis_connection


def index(request):
    conn = get_redis_connection("default")
    return HttpResponse('设置成功')
def order(request):
    conn = get_redis_connection("back")
    return HttpResponse('获取成功')

3.全栈缓存

views.py

from django.shortcuts import render,HttpResponse
import time


def index(request):
    ctime = str(time.time())
    return HttpResponse(ctime)

def order(request):
    ctime = str(time.time())
    return HttpResponse(ctime)

在settings中配置

使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存

    MIDDLEWARE = [
        'django.middleware.cache.UpdateCacheMiddleware',
        # 其他中间件...
        'django.middleware.cache.FetchFromCacheMiddleware',
    ]

 

代码就这些贴上笔记!具体缓存机制可以参考上面两个链接

s9day110 
内容回顾:
    1. git开发时,出bug如何结局?
    
    2. git rebase的作用?
    
    3. git 命令?
        
    4. redis是什么?
        用于操作内存的软件。
        - 可以做持久化:
            - AOF
            - RDB
        - 相当于是大字典
        
        - 单进程单线程
    
    5. 使用连接池
        本质,维护一个已经和服务端连接成功的socket。
        以后再次发送数据时,直接获取一个socket,直接send数据。
    
    6. 路飞表结果
        - 课程
            - 大类
            - 子类
            - 学位课
            - 奖学金
            - 老师
            - 专题课
            - 课程详细
            - 大纲
            - 作业
            - 章节
            - 课时
            - 价格策略
        - 深科技
            - 文章来源
            - 文章
            - 用户
            - token
            - 评论 
            - 收藏 
    7. 支付宝支付
    
        - 加密方式:rsa
        - 公钥私钥:
                - 商户私钥
                - 支付宝公钥
        - 支付成功后,断电宕机
                - 成功:return HttpResponse('success')
                
    8. rest framework框架
        
    9. 数据库页数越大速度越慢。
        - 限制页数
        - 记录当前页最大ID、最小ID  url上的页面(加密)
        - 错误答案:
            - 扫描索引表
            - 再去数据库表中获取数据


今日内容:
    1. git 
    2. redis
    3. 改代码
    

内容详细:
    1. git 
        第四阶段: 多人协同开发
            1. 允许他人操作程序
                - 合作者
                - 创建组织
            
            2. 分支
                - master
                    - dev 
                        - xdb
                        - zhh
            3. 规则
                - 一起合并
                - 合并时间:1/2
            
            问题:
                $ git push origin dev
                To https://github.com/WuPeiqi/dbhot.git
                 ! [rejected]        dev -> dev (fetch first)
                error: failed to push some refs to 'https://github.com/WuPeiqi/dbhot.git'
                hint: Updates were rejected because the remote contains work that you do
                hint: not have locally. This is usually caused by another repository pushing
                hint: to the same ref. You may want to first integrate the remote changes
                hint: (e.g., 'git pull ...') before pushing again.
                hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    
            4. 做代码review
                如何做代码review?
                    - 创建review分支:
                谁来锁代码review?
                    - 组长
                    - 带你的人
            
            
        第五阶段:给别人代码贡献力量
            
            问题: 如果你要在github上给别人代码添加功能?
                  fork
                  pull request 
            
            
        
        其他:
            a. 不用反复输入用户名密码登录
                Https:
                    https://用户名:密码@github.com/WuPeiqi/dbhot.git
                    git remote add origin  https://用户名:密码@github.com/WuPeiqi/dbhot.git
                
                SSH:
                    git@github.com:WuPeiqi/dbhot.git
            
            b. .gitignore文件 
            
            
            c. 版本 
                    git tag -a v1.0 -m '版本介绍'        本地创建Tag
                    git show v1.0                       查看
                    git tags -n                         查看本地Tag
                    git tag -l 'v1.4.2.*'               查看本地Tag,模糊匹配
                    git tag -d v1.0                     删除Tag
                    git push origin :refs/tags/v0.2     更新远程tag
                    git checkout v.10                   切换tag
                    git fetch origin tag V1.2

                    git push origin  --tags
                    git pull origin  --tags
                    
                    
                    git clone -b v1.0  https://github.com/WuPeiqi/dbhot.git
            
            
            
        要求:
            1. 组长创建项目(把自己的路飞学城api):master/dev 
            2. 组长邀请组员尽力啊
            3. 组员:
                - 创建自己分支
                - 修改代码,去提交。
        
        组长:今天晚上发送项目地址

            
            
    2. redis 
        特点:
            a. 持久化
            b. 单进程、单线程
            c. 5大数据类型
            
                redis={
                    k1:'123',  字符串
                    k2:[1,2,3,4,4,2,1], 列表
                    k3:{1,2,3,4}, 集合
                    k4:{name:123,age:666}, 字典
                    k5:{('alex',60),('eva-j',80),('rt',70),},有序集合
                }
        使用字典:
            - 基本操作
            - 慎重使用hgetall, 优先使用 hscan_iter
            - 计数器
            
            注意事项:redis操作时,只有第一层value支持:list,dict ....
        
        
        应用(django):
            1. 自定义使用redis
            
            2. 使用第三方组件
                pip3 install django-redis 
                
                配置:
                    CACHES = {
                        "default": {
                            "BACKEND": "django_redis.cache.RedisCache",
                            "LOCATION": "redis://127.0.0.1:6379",
                            "OPTIONS": {
                                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                                "CONNECTION_POOL_KWARGS": {"max_connections": 100}
                                # "PASSWORD": "密码",
                            }
                        }
                    }
                        
                使用:
                    import redis
                    from django.shortcuts import render,HttpResponse
                    from django_redis import get_redis_connection


                    def index(request):
                        conn = get_redis_connection("default")
                        return HttpResponse('设置成功')
                    def order(request):
                        conn = get_redis_connection("back")
                        return HttpResponse('获取成功')
    
    
                高级使用:
                    1. 全站缓存
                    
                    2. 单视图
                    
                    3. 局部页面
    
            
            补充:rest framework框架访问频率限制推荐放到 redis/memecached
            
        
    
    

 

转载于:https://www.cnblogs.com/zhen1996/p/9952704.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值