1. Redis啟動多端口,運行多實例
redis默認啟動端口 6379
指定多個端口 --port
啟動多端口
redis-server --port 6380
redis-server --port 6381
2. 查看redis實例
ps -ef | grep redis
使用實例
redis-cli -p 6380 (-p:指定端口)
關閉實例
redis-cli shutdown
關閉指定端口實例
redis-cli -p 6380 shutdown
3. 任務列表:
redis數據遷移:寫一個redisCopyUtil工具類,實現shardedJedis集群數據庫遷移功能
優化gm后臺白名單功能
增加gm后臺黑名單功能
增加玩家ip登錄限制
白名單優化
點擊提交后彈窗提示成功添加白名單
移除角色時提示確定移除或取消
判斷輸入角色是否已存在并提示-
黑名單優化:
- 黑名單列表:
移除操作有bug
角色重復√ - 新增黑名單:
強制角色下線功能未實現
更新到游戲服務器有bug
禁言天數輸入合法性判斷√ - 天數
0 -3 永久 - 黑名單類型
1禁言 2封號
- 黑名單列表:
注:
<c:forEach items="${ipList}" var="ipList">
<td>${ipList}</td>
<td><a href="javascript:void(0)" onclick="rem('')">移除</a></td>
</c:forEach>
forEach循環時一定注意不能忘記items="${ipList}" 中的${}........
bootstrap 下拉框無法顯示菜單問題:引入jquery庫和bootstrp順序問題
sitemesh:
- 引入sitemesh
- WEN-INF下:decorators.xml
- web.xml中配置過濾器
linux密碼13位
協議sftp
端口22
linux tomcat:/usr/local/tomcat/bin目錄下:
-
啟動:
./catalina.sh run(日志啟動方式)
./startup.sh(普通啟動方式)
-
關閉
./shutdown.sh
-
查看tomcat是否關閉:
ps -ef | grep tomcat
-
結束tomcat進程:
kill -9 [PID]
linux mysql:/usr/local/mysql/bin/目錄下:
- 啟動:
service mysql start
關閉:
service mysql stop
重啟:
service mysqld restart
linux下讓tomcat以service方式運行 參考博文
linux查看當前服務:
chkconfig --list
linux查看當前進程:
ps -ef | grep tomcat
linux進程后臺運行:
nohup ... &
如:nohup ping www.ibm.com &
項目發布時出現classnotfoundexception可能是maven項目包未導入編譯路徑 參考博文
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger goallog = LoggerFactory.getLogger("logger name");
private static final Logger logger = LoggerFactory.getLogger(SessionManager.class);
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
jquery正則表達式驗證時間
function verifyTime(time){
var reg = /^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/;
var str = "#" + time;
var str2 = $(str).val();
var timeArr = str2.split(",");
$.each(timeArr,function(i,value){
if(!reg.test(value)){
alert("時間格式不正確!");
return false;
}
});
}
eclipse快捷鍵:
- Eclipse查看某個方法被哪些類調用:
ctrl+alt+h
- 快速查找類
ctrl + shift + t
- 查看類被調用:
右鍵-references-project
- 格式化代碼
ctrl+shift+f
- 在當前行下邊創建空白
shift+enter
- 自動引入包和刪除無用包
ctrl+shift+o:
- 前一個編輯的頁面
Alt+←
- 快速顯示當前類的繼承結構
Ctrl+T
- 全局查找關鍵字
ctrl + h
異常
Implicit super constructor FatherClass() is undefined. Must explicitly invoke another constructor
錯誤原因:
子類必須繼承父類的構造方法,如果父類構造方法中沒有參數傳遞,那么默認是不寫super()繼承父類的構造方法的。LinearLayout類的構造方法沒有無參數的構造方法,所以,你必須繼承父類有參數的構造方法,而有參數的構造方法子類必須繼承,所以,你必須寫super關鍵字來繼承父類的有參數的構造方法。
/**
* 生成12位或16位不重復的純數字字符串,前2位為awardLibId,后面十位或14位是隨機生成的數字字符串
*
* @return
*/
public static String getRandomString(String awardLibId) {
String codeString;
int i = 0;
while (true) {
//生成12位不重復的純數字字符串
// String randomStr = RandomStringUtils .randomAlphanumeric(10);
//生成16位不重復的純數字字符串
String randomStr = RandomStringUtils .randomAlphanumeric(14);
codeString = awardLibId + randomStr;
if (!allCodeList.contains(codeString)) {
break;
}
i++;
if (i > 1000000) {
break;
}
}
return codeString;
}
Linux rz/sz命令:
rz:將本地上傳文件到服務器
sz:發送文件到本地
導入sql文件數據:
source /tmp/database.sql;
long型整數轉換為int時要注意溢出問題
確認刪除操作:
onclick="return confirm('確認刪除?')"
直接訪問:(項目名+資源名)(非WEB-INF目錄下)
http://localhost:8080/bread/user.html
生成兌換碼:
com.goal.war.core.tool.CreateAwardTicket
兌換:
com.goal.war.gift.command.GiftBagCommandHandler
需求:
道具信息表-簡體用 id=50005 對應 exchangeCodeInfo.xml itemId
更新exchangeCodeInfo.xml
ErrorCode.java變更對應languageInfo.xml配置表
xml itemLibInfo.xml itemInfo.xml descriptionInfo.xml exchangeCodeInfo.xml
xml配置文件:
Object[] requestParams = (Object[]) params.getData();
String roleName = String.valueOf(requestParams[0]);
String bindFriendInviteCode = String.valueOf(requestParams[1]);
異常:參考博文
eclipse使用debug模式啟動不起來:
原因:有些未清除的斷點可能導致需要加載某個服務時無法通過,從而導致JBoss無法啟動,從而debug模式啟動不起來
解決辦法:清除掉某些斷點或全部斷點
eclipse清除所有斷點:run-->remove all breakpoints
對象排序:
Collections.sort(rankVOs, new Comparator<StarWarRankVO>() {
@Override
public int compare(StarWarRankVO o1, StarWarRankVO o2) {
// return o1.getEloPoint().compareTo(o2.getEloPoint());
Integer count1 = o1.getWarCount();
Integer count2 = o2.getWarCount();
return count1.compareTo(count2);
}
});
Long轉為Integer:
先轉為String再轉為Integer:int aInt = Integer.valueOf(String.valueOf(aLong));
單例模式:
/**
* 懶漢式單例模式-線程安全
* @author Administrator
*
*/
class SingletonLazy{
private SingletonLazy(){
}
private static SingletonLazy instance = null;
// public static synchronized SingletonLazy getInstance(){
// if(instance == null){
// instance = new SingletonLazy();
// }
// return instance;
// }
public static SingletonLazy getInstance(){
if(instance == null){
synchronized (SingletonLazy.class) {
instance = new SingletonLazy();
}
instance = new SingletonLazy();
}
return instance;
}
}
/**
* 餓漢式單例模式-天生就是線程安全的
* @author Administrator
*
*/
class SingletonHungry{
private SingletonHungry(){
}
private static final SingletonHungry instance = new SingletonHungry();
public static SingletonHungry getInstance(){
return instance;
}
}
U盤復制文件不能超過4G:
原因:U盤格式為FAT32,如果為NTFS則沒問題
解決辦法:先將U盤文件備份,然后格式化U盤,選擇NTFS格式,即可復制超過4G文件
.xml 和 .properties配置文件讀取方法//TODO
將所有的換行符替換為空格,如\r,\n等:
return str.replaceAll("[\r\n|\n|\r]", " ").trim();
響應數據:
params.getResponse().addParam(datas.toArray());
推送消息到客戶端:
void com.goal.war.core.net.message.MessageDispatcher.pushToClient(int responseCommandId, Object data, Long roleId)
客戶端參數:
RoleBean roleBean = params.getRoleBean();
String string = params.getData().toString();
匿名內部類:獲取符合條件的xml數據
IBeanFilter<ExchangeCodeXML> iBeanFilter = new IBeanFilter<ExchangeCodeXML>() {
@Override
public boolean accept(ExchangeCodeXML t) {
if (t.getLibId().equals(libId)) {
return true;
}
return false;
}
};
根據某個字段來查詢:
<ExchangeCodeXML> List<ExchangeCodeXML> com.goal.war.data.XMLDataCache.find(Class<ExchangeCodeXML> clazz, IBeanFilter<ExchangeCodeXML> beanFilter)
排序:
Collections.sort(list, new Comparator<FundXML>() {
@Override
public int compare(FundXML o1, FundXML o2) {
return o1.getId().compareTo(o2.getId());
}
});
//發放獎勵
WARE.addToRole()
//扣除道具
WARE.delFromRole()
Map<Integer, Integer> mapGet = StringUtil.fromJson(hasGet, new TypeToken<Map<Integer, Integer>>(){}.getType());
工具類:
org.apache.commons.io.FileUtils
public static String readFileToString(File file, Charset encoding)將文件內容讀取為字符串
/**
* 將所有的換行符替換為空格,如\r,\n等
*
* @return 替換后的字符串
*/
public static String removeNewLineChar(String str) {
return str.replaceAll("[\\r\\n|\\n|\\r]", " ").trim();
}