redis (三)


微博项目的key设计

全局相关的key:

表名

global

列名

操作

备注

Global:userid

incr

产生全局的userid

Global:postid

Incr

产生全局的postid

 

 

用户相关的key(表)

表名

user

Userid

Username

Password

Authsecret

3

Test3

1111111

#U*Q(%_

 

在redis中,变成以下几个key

Key前缀

user

User:Userid:*

User:userid:*Username

User:userid:*Password

User:userid:*:Authsecret

User:userid:3

User:userid:3:Test3

User:userid:3:1111111

User:userid:3:#U*Q(%_

 

 

微博相关的表设计

表名

post

 

 

 

Postid

Userid

Username

Time

Content

4

2

Lisi

1370987654f

测试内容

 

微博在redis中,与表设计对应的key设计

Key前缀

post

 

 

 

Post:Postid:*

Post:postid:*Userid

Post:postid:*:Username

Post:postid:*:Time

Post:postid:*:Content

4

2

Lisi

1370987654f

测试内容


关注表: following

Following:$userid -->

 

 

粉丝表

Follower:$userid --->

 

 

 

推送表:revicepost

 


3

4

7

 

 

 

 

 

 

=================拉模型,改进=====================

 

拉取表

 


3

4

7

 

 

 

 

 

问: 上次我拉取了 A->5,67,三条微博, 下次刷新home.php, 从>7的微博开始拉取

解决: 拉取时,设定一个lastpull时间点, 下次拉取时,取>lastpull的微博

 

问: 有很多关注人,如何取?

解决: 循环自己的关注列表,逐个取他们的新微博

 

问: 取出来之后放在哪儿?

答: pull:$userid的链接里

 

问: 如果个人中心,只有前1000条

答: ltrim,只取前1000条

 

 

问: 如果我关注 A,B两人, 从2人中,各取3条最新信息

,这3+3条信息, 从时间上,是交错的, 如何按时间排序?

答: 我们发布时, 是发布的hash结构, 不能按时间来排序.

 

解决:  同步时,取微博后,记录本次取的微博的最大id,

下次同步时,只取比最大id更大的微博

 

 


Timetaken for tests:   32.690 seconds

Completerequests:      20000

Failedrequests:        0

Writeerrors:           0

Non-2xxresponses:      20000

Totaltransferred:      13520000 bytes

TotalPOSTed:           5340000

HTMLtransferred:       9300000 bytes

Requestsper second:    611.80 [#/sec] (mean)

Time perrequest:       81.726 [ms] (mean)

Time perrequest:       1.635 [ms] (mean, acrossall concurrent requests)

Transferrate:          403.88 [Kbytes/sec]received

                        159.52 kb/s sent

                        563.41 kb/s total

 

ConnectionTimes (ms)

              min  mean[+/-sd] median   max

Connect:        0   0   0.9      0     19

Processing:    14  82   8.4     81    153

Waiting:        4  82   8.4     80    153

Total:         20  82   8.2     81    153

 

Percentageof the requests served within a certain time (ms)

  50%    81

  66%    84

  75%    86

  80%    88

  90%    93

  95%     96

  98%   100

  99%   103

 100%   153 (longest request)

 

 

测试结果:

50个并发, 20000次请求, 虚拟下,未做特殊优化

每次请求redis写操作6次.

30+秒左右完成.

 

平均每秒发布700条微博,4000redis写入.

后台定时任务,回归冷数据入mysql
Redis配置文件

 daemonize yes # redis是否以后台进程运行

 Requirepass 密码 # 配置redis连接的密码

:配置密码后,客户端连上服务器,需要先执行授权命令

# auth 密码


【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器状态空间平均模型的建模策略。该方法通过对系统中多个相互耦合的DC-DC变换器进行统一建模,构建出整个微电网的集中状态空间模型,并在此基础上实施线性化处理,便于后续的小信号分析与稳定性研究。文中详细阐述了建模过程中的关键步骤,包括电路拓扑分析、状态变量选取、平均化处理以及雅可比矩阵的推导,最终通过Matlab代码实现模型仿真验证,展示了该方法在动态响应分析和控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事微电网、新能源系统建模与控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中多变换器系统的统一建模方法;②理解状态空间平均法在非线性电力电子系统中的应用;③实现系统线性化并用于稳定性分析与控制器设计;④通过Matlab代码复现和扩展模型,服务于科研仿真与教学实践。; 阅读建议:建议读者结合Matlab代码逐步理解建模流程,重点关注状态变量的选择与平均化处理的数学推导,同时可尝试修改系统参数或拓扑结构以加深对模型通用性和适应性的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值