Kaynağa Gözat

增加redis管理

visuddhinanda 5 yıl önce
ebeveyn
işleme
98b13a64d3

+ 11 - 9
app/redis/upgrade_pali_sent.php → app/pali_sent/redis_upgrade_pali_sent.php

@@ -1,10 +1,13 @@
 <?php
 /*
-get user sentence from db
+从巴利句子列表数据库中提取数据填充redis
+每个句子包含 
+pali 
+id 
+sim_count
  */
 require_once "../path.php";
-require_once "../public/_pdo.php";
-require_once "../public/function.php";
+require_once "../redis/function.php";
 
 if (isset($argv[1])) {
     if ($argv[1] == "del") {
@@ -21,18 +24,17 @@ if (isset($argv[1])) {
 		echo "delete ok ".$count;
     }
 } else {
-    $dns = "" . _FILE_DB_PALI_SENTENCE_;
-    $dbh = new PDO($dns, "", "", array(PDO::ATTR_PERSISTENT => true));
+
+    $dbh = new PDO(_FILE_DB_PALI_SENTENCE_, "", "", array(PDO::ATTR_PERSISTENT => true));
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
-	$dns = "" . _FILE_DB_PALI_SENTENCE_SIM_;
-	$db_pali_sent_sim = new PDO($dns, "", "", array(PDO::ATTR_PERSISTENT => true));
+
+	$db_pali_sent_sim = new PDO(_FILE_DB_PALI_SENTENCE_SIM_, "", "", array(PDO::ATTR_PERSISTENT => true));
 	$db_pali_sent_sim->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
 
     $query = "SELECT id, book,paragraph, begin,end ,text FROM pali_sent WHERE 1 ";
     $stmt = $dbh->prepare($query);
     $stmt->execute();
-    $redis = new redis();
-    $r_conn = $redis->connect('127.0.0.1', 6379);
+    $r_conn = redis_connect();
 	$stringSize = 0;
 	$count = 0;
     if ($r_conn) {

+ 19 - 0
app/redis/del.php

@@ -0,0 +1,19 @@
+<?php 
+require_once "../path.php";
+require_once "../redis/function.php";
+$redis = redis_connect();
+if($redis==false){
+	echo "redis 连接失败";
+}
+else{
+	$keys = $redis->keys($_GET["key"]);
+		$count=0;
+		foreach ($keys as $key => $value) {
+			# code...
+			$deleted = $redis->del($value);
+			$count += $deleted;
+		}
+		
+		echo "delete ok ".$count;
+}
+?>

+ 90 - 0
app/redis/index.php

@@ -0,0 +1,90 @@
+<?PHP
+require_once "../pcdl/html_head.php";
+require_once "function.php";
+?>
+
+<body>
+<?php
+$redis = redis_connect();
+if($redis==false){
+	echo "redis 连接失败";
+}
+else{
+	$count = $redis->dbSize();
+	echo "Redis has $count keys<br>";
+
+	if(file_exists("redis.json")){
+	$redisList=json_decode(file_get_contents("redis.json"),true);
+	echo "<div>";
+	
+	foreach ($redisList as $key => $value) {
+		# code..
+		echo "<div class='card' style='display:block;";
+		if($value["valid"]==false){
+			echo "background-color:lightpink;";
+		}
+		echo "'>";
+		echo "<div>key:<b>{$value["key"]}</b></div>";
+		echo "<div>type:{$value["type"]}</div>";
+		echo "<div >valid:";
+		if($value["valid"]){
+			echo "有效";
+		}
+		else{
+			echo "已经过时";
+		}
+		echo "</div>";
+		if(isset($value["rebuild"]) && !empty($value["rebuild"])){
+			echo "<div >rebuild:<a href='{$value["rebuild"]}' target='_blank'>{$value["rebuild"]}</a></div>";
+		}
+
+		if(substr($value["key"],-1)==="*"){
+			$keys = $redis->keys($value["key"]);
+		}
+		else{
+			switch ($value["type"]) {
+				case 'hash':
+					# code...
+					$keys = $redis->hKeys($value["key"]);
+					break;
+				default:
+					# code...
+					break;
+			}
+		}
+		echo "<div >count:";
+		if(isset($keys)){
+			echo count($keys);
+		}
+		else{
+			echo "未知";
+		}
+		echo "</div>";
+		echo "<div >description:{$value["description"]}</div>";
+		echo "<div ><button onclick=\"del('{$value["key"]}')\">删除数据</button></div>";
+		
+		echo "</div>";
+	}
+	echo "</div>";
+
+}
+else{
+	echo "no config file";
+}
+}
+
+?>
+<script>
+function del(key){
+	$.get("del.php",
+	{
+		key:key
+	},
+	function(data){
+		alert(data);
+	});
+}
+</script>
+<?php
+include "../pcdl/html_foot.php";
+?>

+ 14 - 3
app/redis/redis.json

@@ -1,6 +1,17 @@
 [
-	{ "key": "ref_dict_idx", "type": "hash", "valid": true, "description": "参考字典索引" },
+	{ "key": "ref_dict_idx", "type": "hash", "valid": true, "rebuild": "", "description": "参考字典索引" },
 	{ "key": "pali_sent_*", "type": "string", "valid": false, "description": "巴利句子列表" },
-	{ "key": "pali://sent/*", "type": "hash", "valid": true, "description": "巴利句子列表" }
-	{ "key": "sent://*/*", "type": "hash", "valid": true, "description": "译文句子列表 第一个星号channel 第二个是句子id book-para-start-end" }
+	{
+		"key": "pali://sent/*",
+		"type": "hash",
+		"valid": true,
+		"rebuild": "../pali_sent/redis_upgrade_pali_sent.php",
+		"description": "巴利句子列表"
+	},
+	{
+		"key": "sent://*",
+		"type": "hash",
+		"valid": true,
+		"description": "译文句子列表 key: sent://channel/book-para-start-end "
+	}
 ]