界面预览,查看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
Redis 配置
配置文件在(在本地自动加载redis_local.php文件,在线上自动加载 redis.php文件):
RedisWebManager/config/redis.php RedisWebManager/config/redis_local.php
配置清空db的密码 & 配置快速查询的Key
RedisWebManager/config/params.php RedisWebManager/config/params_local.php
其中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
如图,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
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