• vue项目创建,redis列表字典操作,django用redis的第二种方法


    vue项目的创建(路飞前端)
    -安装node.js
    -安装vue的脚手架
    -创建vue项目,vue create 项目名字
    在pycharm中开发vue
    -webstrom,pyacharm,goland,idea,androidStuidio,Php....
    -Edit-conf----》点+ 选npm-----》在script对应的框中写:serve
    vue项目的目录结构

    -node_moudules:项目的依赖
    -public
    -favicon.ico 网页图标
    -index.html主页面
    -src:
    -assets:静态文件
    -compontents:小组件
    -views:页面组件
    -App.vue:主组件
    -main.js:项目主入口js
    -router.js:路由相关,以后配置路由都在这配置
    -store.js:vuex相关,状态管理器
    -package.json 项目依赖文件

    redis列表操作
     conn.lpush('list',*[4,5,6]) #插入列表
    # conn.lpushx('list1',3)#只有列表存在时插入右侧
    # print(conn.llen('list1'))
    # print(conn.linsert('list1','AFTER',3,'z'))#在name对应的列表的某一个值前或后插入一个新值,返回值为长度
    # conn.lset('list1',0,'f')#对应索引重新赋值
    # conn.lpush('list',*[4,5,6])
    # conn.lrem('list',2,2) #移除列表内值2开始删除两个
    # conn.lpop('list') #去除删除列表最左边值
    # print(conn.lindex('list',1)) 取值
    # print(conn.lrange('list',0,2))
    # conn.ltrim('list',0,1)#移除不在之间的值
    # conn.rpoplpush()#从一个列表去除最右边元素添加到另一个表左侧
    # print(conn.blpop(['list','list1'],5))#将多个列表排列,按照从左到右去pop对应列表的元素
    # 爬虫实现简单分布式:多个url放到列表里,往里不停放URL,程序循环取值,但是只能一台机器运行取值,可以把url放到redis中,多台机器从redis中取值,爬取数据,实现简单分布式
     列表的自定义增量迭代
    def l_scan(name,count=1000):
    cursor=0
    while True:
    if cursor>=conn.llen(name):
    break
    ret=conn.lrange(name,cursor,count)
    cursor+=count
    for i in ret:
    yield i

    for i in l_scan('list1',100):
    print(i)



    字典操作
     conn.hmset('dict',{'name':'zzf','age':18})
    # print(conn.hmget('dict','name','age'))
    # print(conn.hget('dict','name'))
    # print(conn.hkeys('dict'))#取key
    # print(conn.hvals('dict'))#取values
    # print(conn.hgetall('dict'))#慎用
    # print(conn.hlen('dict'))
    # for i in range(0,10000):
    # conn.hmset('dict',{'name%s'%i:'zzf%s'%i})
    #z自定义增量迭代
    # print(conn.hscan('dict',cursor=0, match=None, count=100))
    # for i in conn.hscan_iter('dict',match=None,count=100):
    # print(i)
    # for i in range(0,10000):
    # conn.lpushx('list1',i)







    其他常用操作
    # print(conn.keys(pattern='*'))
    # print(conn.keys(pattern='*a*'))
    # print(conn.keys(pattern='?a*'))#模糊匹配key
    # print(conn.exists('name'))#是否存在1或者0
    # conn.expire('name',10)#设置超时时间

    管道

    # redis支持5大数据类型,但是它只支持一层
    # redis之管道(实现事务)
    # 相当于mysql的事务
    # pipe = conn.pipeline(transaction=True)
    # pipe.multi()
    #
    # pipe.set('name', 'alex')
    # pipe.set('role', 'sb')
    #
    # pipe.execute()


    -第二种方式:
    -按装django-redis
    -使用
    -在setting中配置:
    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": "123",
    }
    }
    }
    -在视图中使用
    from django_redis import get_redis_connection
    def test(request):
    conn=get_redis_connection()
    ret=conn.get('n123')
    return HttpResponse('%s'%ret)
















  • 相关阅读:
    python 回溯法 记录
    java提高篇(二三)-----HashMap
    java提高篇(二二)---LinkedList
    java提高篇(二一)-----ArrayList
    java提高篇(二十)-----集合大家族
    java提高篇(十九)-----数组之二
    java提高篇(十八)-----数组之一:认识JAVA数组
    java提高篇(十七)-----异常(二)
    java提高篇(十六)-----异常(一)
    jQuery读取和设定KindEditor的值
  • 原文地址:https://www.cnblogs.com/wrqysrt/p/10644516.html
Copyright © 2020-2023  润新知