Total Pageviews

Friday, 25 September 2026

RedisWebManager

 

界面预览,查看gif图:https://imgur.com/kiYTz0V

弹窗方式查看key值(在RedisWebManager/config/params.php配置文件中设置valDisplayType为popup即可).

在行内查看key值(在RedisWebManager/config/params.php配置文件中设置valDisplayType为inline即可).

在新页面查看key值(当内容太长时,可能弹窗/行内显示都不是很方便清晰,所以可以点击『View』按钮跳转到新页面查看,看起来会更清晰更方便一点).

Web版客户端,不需要你每次都用终端登录上去(登录的时候可能还得找密码是多少):

RedisWebManager是直接显示查出的值的原始内容(如数组或对象),而不是显示json化后的json字符串,或者序列化后的字符串,这是本工具最大的优势,也是我写本工具的最重要的原因,特别项目测试时,有时候需要查看缓存数据,这个功能会非常方便(但反序列化目前仅针对php有效,未测试过其他语言的序列化与反序列化)!

功能

  • 查看redis Key列表
  • 预览某个key的值(弹窗/行内/新页面方式)
  • 以预览数组的方式预览json,以预览对象的方式预览序列化后的对象(这是我写这个工具的最重要的原因)
  • 使用key前缀后缀搜索
  • 删除单个key & 批量删除key
  • 选择显示某个db的数据
  • 清空当前db或者清空所有db
  • 查看Redis服务器相关信息
  • 在web上直接使用client命令

安装

 

git clone https://github.com/xiebruce/RedisWebManager.git 

 

Bash

Copy

Redis 配置

配置文件在(在本地自动加载redis_local.php文件,在线上自动加载 redis.php文件):

 

RedisWebManager/config/redis.php RedisWebManager/config/redis_local.php 

 

Bash

Copy

配置清空db的密码 & 配置快速查询的Key

 

RedisWebManager/config/params.php RedisWebManager/config/params_local.php 

 

Bash

Copy

其中scanPageSize存在的原因是:假设你设置了pageSize=10也就是一页获取10条,并且搜索关键字(keyword)不为空,那么redis并不能保证返回10条,原因是redis是先获取10条,然后再从这10条中匹配你的keyword,匹配上的,就返回,没匹配上的就不返回,所以,除非这么巧这10条都能匹配上你的keyword,否则返回数量肯定小于10条,为了解决这个问题(为了让返回的数量不小于你设置的pageSize),我采用循环获取的方式,只要第一次获取的不够10条,那我就再次获取,直到等于或者超过10条才停止循环并返回。所以,这就有了scanPageSize和pageSize,pageSize是指一共要返回多少条(即每页条数),而scanPageSize是指每次从redis获取多少条,假设你设置scanPageSize=1,意思就是每次从redis获取一条,那么要让返回的key数量大于等于10,则至少要循环10次,这还是最好的情况(每次获取的key都跟你的keyword匹配上了),如果是差的情况,有可能100次还没匹配上你的keyword,或者你的keyword跟整个redis里的每个key都不匹配,那这个循环最多会循环100次,100次还匹配不够10条,我就会停止循环并返回匹配到的或者一个没匹配到就返回空。所以,scanPageSize越小,循环次数越多,你要等的时间越长,消耗的服务器资源越多,所以你要看着来设置,如果不设置,那会默认跟pageSize相等。

登录账号密码配置

 

RedisWebManager/models/User.php 

 

Bash

Copy

如图,username为账号,password为密码,只需要修改username和password对应的值即可,如果你想要多个账号,那就复制多份,注意把key和id值改一下,这个就相当于数据库查出来的一条数据,key和id就是数据库的自增id,因为我们不配置数据库,所以直接写死在这里:


设置权限:

sudo chmod -R 777 /path/to/RedisWebManager/runtime sudo chmod -R 777 /path/to/RedisWebManager/web/assets 

 

Bash

Copy

Nginx 配置

建议添加nginx密码认证,这样就算别人知道地址也无法进入.

 

server {     charset utf-8;     client_max_body_size 128M;      listen 80; ## listen for ipv4     #listen [::]:80 default_server ipv6only=on; ## listen for ipv6      server_name redis.mydomain.com;     root        /data/wwwroot/RedisWebManager/web;     index       index.php;      access_log  /path/to/RedisWebManager/log/access.log;     error_log   /path/to/RedisWebManager/log/error.log;      location / {         # Redirect everything that isn't a real file to index.php         try_files $uri $uri/ /index.php$is_args$args;     }      # uncomment to avoid processing of calls to non-existing static files by Yii     #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {     #    try_files $uri =404;     #}     #error_page 404 /404.html;      # deny accessing php files for the /assets directory     location ~ ^/assets/.*\.php$ {         deny all;     }      location ~ \.php$ {         include fastcgi_params;         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;         fastcgi_pass 127.0.0.1:9000;         #fastcgi_pass unix:/var/run/php5-fpm.sock;         try_files $uri =404;     }      location ~* /\. {         deny all;     } }

项目地址:https://github.com/xiebruce/RedisWebManager

No comments:

Post a Comment