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

课程商城网站模板网络设计课程培训

课程商城网站模板,网络设计课程培训,制作网页版权怎么修改,郑州做网站九零后网络1 redis普通连接和连接池 1.1 普通连接 1.2 连接池 2 redis字符串类型 3 redis hash类型 4 redis列表类型 1 redis普通连接和连接池 #1 python 代码作为客户端---》连接# 2 安装模块#xff1a;pip install redis1.1 普通连接 from redis import Redisconn Redis(hostpip install redis1.1 普通连接 from redis import Redisconn Redis(hostlocalhost,port6379,db0,decode_responsesTrue)resconn.get(name)print(res)conn.close() 1.2 连接池 import redis # 把池写成单例----》整个项目中只有这一个实例(对象)---》python 中实现单例的5种方式---》模块导入的方式 POOL redis.ConnectionPool(host127.0.0.1, port6379, max_connections50)######import redis from threading import Threadfrom pool import POOL def task():conn redis.Redis(connection_poolPOOL)print(conn.get(name))conn.close()if __name__ __main__:for i in range(10):t Thread(targettask)t.start() 2 redis字符串类型 1 set(name, value, exNone, pxNone, nxFalse, xxFalse) 2 setnx(name, value) 3 setex(name, value, time) 4 psetex(name, time_ms, value) 5 mset(*args, **kwargs) 6 get(name) 7 mget(keys, *args) 8 getset(name, value) 9 getrange(key, start, end) 10 setrange(name, offset, value) 11 setbit(name, offset, value) 12 getbit(name, offset) 13 bitcount(key, startNone, endNone) 14 bitop(operation, dest, *keys) 15 strlen(name) 16 incr(self, name, amount1) # incrby 17 incrbyfloat(self, name, amount1.0) 18 decr(self, name, amount1) 19 append(key, value)代码演练19个字符串类型import redisconn redis.Redis(decode_responsesTrue) # 1 set(name, value, exNone, pxNone, nxFalse, xxFalse) # conn.set(age,19) # 没有就新增有值就修改 # conn.set(hobby,篮球,ex5) # ex过期时间 秒 # conn.set(hobby,篮球,px5000)# 过期时间毫秒 # conn.set(name,彭于晏) # conn.set(name, lqz, nxTrue) # nx如果设置为True则只有name不存在时当前set操作才执行,值存在就修改不了执行没效果 # conn.set(name, lqz, xxTrue) # 如果设置为True则只有name存在时当前set操作才执行值存在才能修改值不存在不会设置新值# 2 setnx(name, value) # conn.setnx(name,彭于晏)# 3 setex(name, value, time) # conn.setex(name,5,sdasdfs)# 4 psetex(name, time_ms, value) # conn.psetex(name,5000,lqz)# 5 mset(*args, **kwargs) 批量设置 # conn.mset({name: lqz, age: 29, gender: 男})# 6 get(name) # print(conn.get(name))# 7 mget(keys, *args) # print(conn.mget([name,age])) # print(conn.mget(name,age,gender))# 8 getset(name, value) # 等同于 get set # print(conn.getset(name,oooo))# 9 getrange(key, start, end) # print(conn.getrange(name,1,3)) # 前闭后闭区间# 10 setrange(name, offset, value) # conn.setrange(name,2,ooo) # 包含2# 先不聊---》操作比特位---》后面聊 # 11 setbit(name, offset, value) # conn.setbit(name,7,1) # l[1 1 0 0 0 1 0 0 ] # 12 getbit(name, offset) # 13 bitcount(key, startNone, endNone) # 14 bitop(operation, dest, *keys)# 15 strlen(name) # print(conn.strlen(name))# 16 incr(self, name, amount1) # conn.incr(age,2) # 自加1单线程没有并发安全数据不会错乱天然适合计数器 计数器---》日活日活跃用户数只要有用户登录就1 # # incrby# 17 incrbyfloat(self, name, amount1.0) # conn.incrbyfloat(age,1.1)# 18 decr(self, name, amount1) # conn.decr(age) # 19 append(key, value) # conn.append(name,ooo) conn.close() set get getrange strlen3 redis hash类型 1 hset(name, key, value) 2 hmset(name, mapping) 3 hget(name,key) 4 hmget(name, keys, *args) 5 hgetall(name) 6 hlen(name) 7 hkeys(name) 8 hvals(name) 9 hexists(name, key) 10 hdel(name,*keys) 11 hincrby(name, key, amount1) 12 hincrbyfloat(name, key, amount1.0) 13 hscan(name, cursor0, matchNone, countNone) 14 hscan_iter(name, matchNone, countNone)def hscan_iter(self,name,match None,count None):cursor 0while cursor ! 0:cursor, data self.hscan(name, cursorcursor, matchmatch, countcount)yield from data.items()代码演练14个hash类型 hash 类型就是咱们python中的字典类型 数据结构数据的组织形式 底层存储 数组---》根据key值使用hash函数得到结构存到数组中字典的key值必须可hash字典的key值必须是不可变数据类型hash 类型无序跟放的先后顺序无关的python 的字典是 有序的 字典列表# print(hash(1)) # print(hash(asdfasdf)) # # print(hash([1,2,3,])) # unhashable # print(hash((1,2,3))) # 不可变数据类型 # a{(1,2,3):8} # print(a[(1,2,3)])# class Person(object): # pass # pPerson() # # a{p:asdf} # print(a[p])import redisconn redis.Redis(decode_responsesTrue) # 1 hset(name, key, value) # conn.hset(userinfo,name,lqz) # conn.hset(userinfo,age,19)# 2 hmset(name, mapping) 弃用了统一用hset # conn.hmset(userinfo2,{name:pyy,age:33}) # conn.hset(userinfo3,mapping{name:xxx,age:33})# 3 hget(name,key) # print(conn.hget(userinfo,name)) # 4 hmget(name, keys, *args) # print(conn.hmget(userinfo,[name,age])) # print(conn.hmget(userinfo,name,age))# 5 hgetall(name) # 慎用---》userinfo 对应的value值非常多一次性拿出来很耗时 # print(conn.hgetall(userinfo))# 6 hlen(name) # print(conn.hlen(userinfo))# 7 hkeys(name) # print(conn.hkeys(userinfo))# 8 hvals(name) # print(conn.hvals(userinfo))# 9 hexists(name, key) # print(conn.hexists(userinfo,hobby))# 10 hdel(name,*keys) # conn.hdel(userinfo,[name,age]) # conn.hdel(userinfo,name,age)# 11 hincrby(name, key, amount1) # conn.hincrby(userinfo2,age)# 12 hincrbyfloat(name, key, amount1.0)# 13 hscan(name, cursor0, matchNone, countNone) # 不单独用 ## 造数据 # for i in range(1000): # conn.hset(hash2,egg_%s%i,鸡蛋%s号%i)# count 数字是大致的 大小如果拿了10 可能是9 可能是11 # resconn.hscan(hash2,cursor0,count10) # 无序所以不是从egg_0开始的 # print(len(res[1]))# 14 hscan_iter(name, matchNone, countNone) # 替代hgetall一次性全取出值如果占内存很大会有风险 , 使用hscan_iter 分批获取值内存占用很小 for item in conn.hscan_iter(hash2,count10):print(item)# 分批获取数据conn.close() hset hget hlen hexists hincrby hscan_iter4 redis列表类型 1 lpush(name, values) 2 rpush(name, values) 表示从右向左操作 3 lpushx(name, value) 4 rpushx(name, value) 表示从右向左操作 5 llen(name) 6 linsert(name, where, refvalue, value)) 7 r.lset(name, index, value) 8 r.lrem(name, value, num) 9 lpop(name) 10 rpop(name) 表示从右向左操作 11 lindex(name, index) 12 lrange(name, start, end) 13 ltrim(name, start, end) 14 rpoplpush(src, dst) 15 blpop(keys, timeout) 16 r.brpop(keys, timeout)从右向左获取数据 17 brpoplpush(src, dst, timeout0)代码演练17个列表类型import redisconn redis.Redis(decode_responsesTrue)# 1 lpush(name, values) # conn.lpush(girls,刘亦菲,迪丽热巴) # conn.lpush(girls,小红)# 2 rpush(name, values) 表示从右向左操作 # conn.rpush(girls, 小绿)# 3 lpushx(name, value) # 只有key存在才能追加 # conn.lpushx(girls,小紫) conn.lpushx(girls1, 小紫)# 4 rpushx(name, value) 表示从右向左操作# 5 llen(name) # print(conn.llen(girls))# 6 linsert(name, where, refvalue, value)) # conn.linsert(girls, wherebefore, refvalue刘亦菲, value新刘亦菲) # conn.linsert(girls, whereafter, refvalue刘亦菲, value老刘亦菲)# 7 r.lset(name, index, value) # conn.lset(girls,0,oooo) # 按索引修改某个位置值# 8 r.lrem(name, value, num) # conn.lrem(girls,1,刘亦菲) # 从左侧删一个 # conn.lrem(girls,-1,刘亦菲) # 从右侧删一个 # conn.lrem(girls,0,刘亦菲) # 全删除# 9 lpop(name) # print(conn.lpop(girls)) # 左侧弹出一个 # print(conn.rpop(girls)) # 右侧弹出 # 10 rpop(name) 表示从右向左操作# 11 lindex(name, index) # print(conn.lindex(girls,0))# 12 lrange(name, start, end) # print(conn.lrange(girls,1,10000)) # 前闭后闭# 一次性把列表中数据都取出来 # print(conn.lrange(girls, 0, -1)) # 可以用-1 # print(conn.lrange(girls, 0, conn.llen(girls))) # 可以用-1# 13 ltrim(name, start, end) # conn.ltrim(girls,2,4)# 14 rpoplpush(src, dst) # conn.rpoplpush(girls,girls)# 15 blpop(keys, timeout) # block:阻塞 实现分布式的系统 消息队列 resconn.blpop(girls,timeout5) print(res)# 16 r.brpop(keys, timeout)从右向左获取数据 # 17 brpoplpush(src, dst, timeout0)conn.close()# utf-8 编码的 bytes格式 # bb\xe8\xbf\xaa\xe4\xb8\xbd\xe7\x83\xad\xe5\xb7\xb4 # print(b.decode(utf-8)) # # for i in b: # print(bin(i)) lpush rpush llen lrange lpop
http://www.yutouwan.com/news/493416/

相关文章:

  • 东莞家具行业营销型网站建设多少钱邯郸网址场
  • 阜阳网站建设云平台给企业开发网站
  • 免备案手机网站哪些网站是做免费推广的
  • 世界杯网站源码下载优秀网站h5案例分享
  • 英雄联盟网站设计购物网站备案
  • 网站开发实训心得海外营销推广方案
  • 山西大同专业网站建设价格网站模板对seo的影响
  • 做一个网站系统多少钱外汇网站怎么做优外汇网站
  • 网站后台打打开空白湛江模板建站系统
  • 惠州网络公司网站建设合肥建设云
  • 东莞专业网站营销google国际版
  • 万网建网站国内高端品牌网站建设
  • 建设门户网站请示网站设计定做
  • 东莞企业网站搭建制作wordpress安装系统
  • 学网站开发有什么好处网站体验分享
  • 河池网站建设弥勒建设局网站
  • 体彩网站建设网上做家教的网站
  • 商城移动端网站开发门户网站开发要求
  • 济源市建设管理处网站企业网站建设哪里好
  • 做wow宏的网站官网的网站建设公司
  • 网站做自己的超链接用jsp做的网站
  • 网站设计哪家更好百度百家号官网
  • 营销型网站易网拓长沙网站的优化
  • 电子商务网站建设实践课题背景自助建站之星
  • 个人可以网站备案吗龙岩网红
  • 某公司网络营销方案怎么做网站优化的
  • 怎么做网站不会被屏蔽视频号认证需要多少钱
  • 响应式相册网站模板学动漫有什么出路
  • 网站推广广告词重庆做优化的网络公司
  • 网站设计与系统的区别公司后台的网站代理维护更新