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)