发表于: 2017-07-07 22:08:58

2 1110


今天完成的事情:

详细了解断言,简单了解memcache命令,telnet,memcached stats命令.



明天计划的事情:

找到一个ssm整合memcached的例子,借鉴例子跑通目前的例子



遇到的问题:

已解决:想查看memcached的stats命令

无法查看运行状态参数.
解决方法是:

这样就能看到了.感谢志勇师兄的指点!

未解决:

在整合中添加了一些文件,绿色的都是

然后test跑出结果为:

我的理解为:

memcached要么是需要建表,要么有一个地方要关联数据库我没连.

导致set和get都有问题

打了个日志看看

发现没什么用,而且还发现了return后无法打日志

打日志也解决不掉,明天找些例子来看看


收获:

1:断言(写详细些)

断言是什么?
编写代码时,我们总是会做出一些假设,断言表示为一些布尔表达式,是用来判断请求响应的结果是否如用户所期望,是否正确的.assertion就是代码中的布尔型状态
程序员相信在程序中的某个特定点表达式值为真,可以在任何时候启用和禁用断言验证

因此可以在测试时启用断言,在部署时禁用断言.同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言


断言的用处:
它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试.

可以创造更稳定,品质更好且不易于出错的代码.


什么时候使用断言?
1:当需要在一个值为false时中断当前操作的话,可以使用断言

2:单元测试必须使用断言


断言方式:
断言可以有两种形式:
1:assert Expression1
2:assert Expression1:Expression2
其中Expression1应该是一个布尔值,Expression2是断言失败时输出的失败消息的字符串.

如果Expression1为假,则抛出一个AssertionError.这是一个错误,不是异常,也就是说是一个不可控制异常.由于是错误,所以可以不捕获,但不推荐这样做,因为会使系统进入不稳定状态


启用断言:

断言默认是关闭的,在编译时启用断言,需要使用source1.4标记,在运行时启用断言需要使用-ea参数,要在系统类中启用和禁用断言可以使用-esa和-dsa参数


不要使用:
1:不要使用断言作为公共方法的参数检查,公共方法的参数永远都要执行
2:断言语句不可以有任何边界效应,不要使用断言语句去修改变量和改变方法的返回值

3:assert只检验一个条件,如果同时检验多个条件,如果断言失败,无法直观判断是哪个条件时效


使用:
1:使用断言捕捉不该发生的非法情况.不要混淆非法情况与错误情况之间的区别,后者是必然存在的并且是一定要做出处理的.
2:使用断言对函数的参数进行确认.
3:在编写函数时,要进行反复的考查,并且自问:我打算做哪些假定?一旦确定了假定,就要使用断言对假定进行检查
4:在进行防错性编程时,如果"不可能发生"的事情发生了,要使用断言报警


assert()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为false(0),程序将报告错误,并通过调用abort终止执行.如果表达式不为0,则继续执行后面的语句

这个宏通常用来判断程序中是否出现了明显的非法的数据,如果出现了终止程序以免导致严重后果,也便于查找错误


2:程序版本

程序一般分为debug版本和release版本
debug版本用于内部调试,release版本发行给用户使用.
而断言assert是仅在debug版本起作用的宏,它用于检查"不应该发生的情况"


3:memcache命令

memcached默认端口为11211

设置参数时需要先停止memcached,然后用命令行设置
启动: d:\memcached> memcached.exe -d start或使用服务找到memcached启动(也可以doc命令services.msc进入服务)
停止: d:\memcached> memcached.exe -d stop
修改参数:在windows下需要通过修改注册表进行设置
进入注册表找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached 
其中有一个imagePath项,在后面加上 -m 1024 -c 2048 -p 11211.
然后重启服务生效


4:telnet

可以通过telnet命令测试程序是否正常运行
如测试本地的memcached是否能正常运行:
telnet 127.0.0.1 11211
如果提示telnet无效,则需要去控制面板设置打开telnet功能
即:控制面板-->程序-->启用或关闭windows功能-->勾选全部Telnet

成功进入后敲命令不显示,按Ctrl+]可显示


5:memcached stats命令

stats命令用于返回统计信息,例如PID(进程号),版本号,连接数等

语法:

1
echo -e "stats\nquit\n" | /usr/bin/nc 192.168.1.101 11211

参数详解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
STAT pid 20487               ## memcache 进程PID
STAT uptime 1977637         ## 自memcache启动以来,服务器运行秒数
STAT time 1461202739       ## 服务器当前unix时间戳
STAT version 1.4.21      ## memcache 服务器版本
STAT libevent 1.4.13-stable      ## libevent 版本
STAT pointer_size 64      ##  架构(32 或 64 位)
STAT rusage_user 150.835069      ## 进程累计用户时间
STAT rusage_system 249.086133      ## 进程累计系统时间
STAT curr_connections 10      ## 当前打开连接数
STAT total_connections 5509      ## 自memcache启动以来,打开的连接总数
STAT connection_structures 11      ## 服务器分配的连接结构数
STAT reserved_fds 40      ##
STAT cmd_get 8913248      ## 自memcache启动以来,执行get命令总数
STAT cmd_set 123382      ## 自memcache启动以来,执行set命令总数
STAT cmd_flush 0      ## 自memcache启动以来,执行flush命令总数
STAT cmd_touch 0      ## 自memcache启动以来,执行touch_all命令总数
STAT get_hits 8913074      ## 自memcache启动以来,get命中次数
STAT get_misses 174      ## 自memcache启动以来,get未命中次数
STAT delete_misses 0      ## 自memcache启动以来,delete未命中次数
STAT delete_hits 0      ## 自memcache启动以来,delete命中次数
STAT incr_misses 0      ## 自memcache启动以来,incr未命中次数
STAT incr_hits 0      ## 自memcache启动以来,incr命中次数
STAT decr_misses 0      ## 自memcache启动以来,decr未命中次数
STAT decr_hits 0      ## 自memcache启动以来,decr命中次数
STAT cas_misses 0      ## 自memcache启动以来,cas未命中次数
STAT cas_hits 0      ## 自memcache启动以来,cas命中次数
STAT cas_badval 0      ## 使用擦拭次数
STAT touch_hits 0      ## 自memcache启动以来,touch命中次数
STAT touch_misses 0      ## 自memcache启动以来,touch未命中次数
STAT auth_cmds 0      ##
STAT auth_errors 0      ##
STAT bytes_read 111225505      ## memcached服务器从网络读取的总的字节数
STAT bytes_written 3621054898      ## memcached服务器发送到网络的总的字节数
STAT limit_maxbytes 33554432      ## memcached服务缓存允许使用的最大字节数(分配的内存数)
STAT accepting_conns 1      ## 目前接受的链接数
STAT listen_disabled_num 0      ##
STAT threads 8      ## 被请求的工作线程的总数量
STAT conn_yields 0      ## 连接操作主动放弃数目
STAT hash_power_level 16      ##
STAT hash_bytes 524288      ##
STAT hash_is_expanding 0      ##
STAT malloc_fails 0      ##
STAT bytes 384154      ## 存储item字节数(当前存储占用的字节数)
STAT curr_items 856      ## item个数(当前存储的数据总数)
STAT total_items 123382      ## item总数(启动以来存储的数据总数)
STAT expired_unfetched 0      ##
STAT evicted_unfetched 0      ##
STAT evictions 0      ## LRU释放的对象数目。为了给新的数据项目释放空间,从缓存移除的缓存对象的数目。比如超过缓存大小时根据LRU算法移除的对象,以及过期的对象
STAT reclaimed 0      ## 已过期的数据条目来存储新数据的数目
STAT crawler_reclaimed 0      ##
STAT lrutail_reflocked 0      ##



返回列表 返回列表
评论

    分享到