Session 是比较老的服务端单会话缓存实现,在新的 net core 中如果需要使用 session,需要增加服务注入,其实直接使用内置的 TempData 替代使用更方便。

TempData 是在会话有效的过程中长期有效的,只是在正常获取一次值 TempData[key] 后,就会被删除。但可以简单的通过:

value = TempData.Peek(key)

的方式来获取值,就不会被删除,等同于 Session 的效果了。

DD-WRT 安装 Entware,以使用 OPKG 安装其它软件

先到web管理页打开以下选项:

[x] Core USB Support
[x] USB 2.0 Support
[x] USB Storage Support
[x] Automatic Drive Mount

在 Disk mount point 下拉列表中选择 /opt,然后单击 Save 按钮。

准备 U 盘

保存并应用设置后,磁盘现在将显示在操作系统中。此时我们可以使用 fdisk 对 U 盘进行分区。
操作教程:How to - Format and Partition External Storage Device 手册制作 ext2/ext 分区。

安装Entware-ng

连接 USB 存储,打开 telnet/ssh 控制台并输入以下命令:
在 ARM 设备:

wget -O - http://pkg.entware.net/binaries/armv7/installer/entware_install.sh | sh

在 MIPS 设备:

wget -O - http://pkg.entware.net/binaries/mipsel/installer/installer.sh | sh

把 DD-WRT 升级成 OpenWRT

在web后台服务中,启用 sshd
将下载好的文件传到 /tmp
ssh 登录到路由:

cd /tmp
mtd -f write openwrt-your-router-factory.bin linux
reboot

如果是把 OpenWRT 转成 DD-WRT,命令稍不同:

mtd write /tmp/factory-to-ddwrt.bin firmware

1. 访问点 (AP)

该模式下路由器的无线网卡就像一个”无线HUB”,负责建立无线路由器和电脑之间的数据链路(相当于无形的网线)。正常情况下,家用的无线路由器的无线连接都默认工作在此模式下。

2. 客户端 (Client)

像笔记本电脑上的无线网卡那样工作,仅连接其它的无线网络,而不发射自己的无线网络信号。对于无线路由器来说,这种模式相当于启用了一个无线的WAN口,且下面的电脑只能通过有线方式接到此设备。该模式下无线路由器仍然提供DHCP及NAT功能,内部四个LAN口组成的单独IP地址段局域网,通过无线路由器上自己的网关,连上外部主网络。

3. 客户端网桥 (Client Bridge)

和“客户端”模式一样,相当于启用了一个无线的WAN口,且下面的电脑只能通过有线方式接到此设备。不过,内部的LAN口组成的局域网和连接上的无线网段处于相同的IP地址段。内部的DHCP请求也会被转发到主无线网络上。

4. Adhoc

Adhoc有个形象的比喻,就像是将两台电脑之间直接找根网线连起来,只不过在这里这根网线是个无线的。最常见的使用adhoc连接的设备多数是一些手持游戏机。该模式在无线路由器上使用的场合比较罕见。

5. 中继 (Repeater)

顾名思义,中继就是一边是接受信号,一边又发射自己的无线信号。在这种模式下无线路由器以无线网卡客户身份接入主AP,然后再以新增虚拟界面(Virtual Interfaces)来为客户端提供无线接入。该模式的最大意义在于可以解决无线信号受到距离或者障碍物的影响不能传输到更远的问题。这种模式下无线路由器仍然提供DHCP及NAT功能,即所有的内部LAN口以及无线客户接入组成的是一个单独的局域网网段。

6. 中继桥接 (Repeater Bridge)

和”中继”模式一样,可以解决无线信号受到距离或者障碍物的影响不能传输到更远的问题。不过,接入到该无线路由器上的电脑终端,是和主无线网网络处在相同的IP地址段。内部的DHCP请求,也会被转发到主无线网络上。

切换到信息库:

use information_schema;

查询所有数据库的总大小

select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;

统计一下所有库数据量

SELECT SUM(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024/1024 AS total_mb FROM information_schema.TABLES;

统计每个库大小

SELECT table_schema,SUM(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024/1024 AS total_mb FROM information_schema.TABLES group by table_schema;
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='h0118';

查看所有数据库各容量大小:

select table_schema as '数据库',sum(table_rows) as '记录数',sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)' from information_schema.tables group by table_schema order by sum(data_length) desc, sum(index_length) desc; 

查看所有数据库各表容量大小

select table_schema as '数据库',table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)' from information_schema.tables order by data_length desc, index_length desc;

查看指定数据库容量大小

select table_schema as '数据库',sum(table_rows) as '记录数',sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)' from information_schema.tables where table_schema='h0118';

查看指定数据库各表容量大小

select table_schema as '数据库',table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)' from information_schema.tables where table_schema='h0118'
order by data_length desc, index_length desc;