设为首页 收藏本站
查看: 1245|回复: 0

[经验分享] redis入门与web管理界面

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-16 18:20:13 | 显示全部楼层 |阅读模式
redis之前也用了一段时间,作用大概也类似于:

一:redis作用

   1:用户数据缓存,每次http访问与响应,都会产生数据,而这些数据,是否都会走向数据库存表?

       不妨来一段实例:电商网购平台,首页每日PV 五千万左右,前端产生日志量每日大于400M,是否能够给登录用户账号、个人中心,订单都存表?

  那即使优化tcp-connects、tomcatThreadpools、oracle-connects,分分钟崩盘数据库,即使是RAC4节点数据库。

      project:使用redis缓存,这是一种web服务器与数据库之前的缓冲区,用以存储用户数据(后端seesion not 前端cookie),能够减少数据库压力,便于快速返回用户查询数据。

   2:做web集群中seesion共享,如若N个tomcat做集群,比如说nginx反向代理到前端做login,当http被load balancer/ Director调度到3th tomcat,可以,但是这个tomcat宕机了,

      那其余正常的tomcat是否能返回正确的server ?seesion能都转移到2th tomcat,redis,那前期部署tomcat集群时候,得引用redis关于seesion共享

    ----------------------

project:这里是redis缓存tomcat的配置,在tomcat/conf/context.xml


             <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />

            <Manager className="com.radiadesign.catalina.session.RedisSessionManager"

                     host="172.18.11.162"     #这是redis服务器的ip地址

                     port="6379"              #这里是redis的端口

                     database="0"

                     maxInactiveInterval="1800" />

            </Context>

               

二:开始一段redis单实例部署,最重要的是基于php做web管理,其实亦可以使用桌面管理工具redis manager desktop,比如运维管理平台,需要集成所有管理界面。

    1、下载redis2.8 redis-2.8.6.tar.gz

      2、编译安装,不通过configure

         make

         make install

         完成安装过程中提示

         it's good idea to run ‘make test’

            INSTALL install

            INSTALL install

            INSTALL install

            INSTALL install

         make test ---报错  You need tcl 8.5 or newer in order to run the Redis test

         安装 yum -y install tcl

      OK

      3、mkdir -p /opt/redis/bin

         mkdir -p /opt/redis/etc

         mkdir -p /opt/redis/data

         mkdir -p /opt/redis/log

      

         cp /opt/redis-2.8.6/redis.conf /opt/redis/etc

         cd /opt/redis-2.8.6/src

         cp  mkreleasdhdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /opt/redis/bin

         

         修改/opt/redis.conf   ----必要修改daemonize,其余可不做修改,自行记住即可

            daemonize yes  制定redis后台运行

       logfile /opt/redis/log/redis.log

       dir /opt/redis/data/

      4、启动redis

          ./redis-server ../etc/redis.conf

     

      [iyunv@app redis]# netstat -lntp|grep redis

      tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      28569/./redis-serve

      tcp        0      0 :::6379                     :::*                        LISTEN      28569/./redis-serve

       可以看到6379端口已启用,并且服务为redis

      [iyunv@app bin]# redis-cli

      127.0.0.1:6379>

      redis客户端启动。

      之后可以使用redis管理工具 RedisDesktopManager 来实现redis缓存的key操作

        

redis命令


      ---------查找key值存在--------

      127.0.0.1:6379> exists Fm_LogList/192767813

      (integer) 1

      (6.20s)  

      ---------查看所有的key--------

      127.0.0.1:6379> keys

      1) "Fm_LogList/192767813"

      2) "Fm_LogList/172756561"

      3) "Fm_LogList/194292175"

      4) "Fm_LogList/191353234"

      5) "Fm_LogList/173947365"

      6) "Fm_LogList/165289481"

      。

      。

      。

      



     --------------------- expire 设置过期时间 expire key time

     127.0.0.1:6379> EXPIRE tutorialname 60

     1) (integer) 1  

      

     192.168.182.6:0>expire chen 600

     1

     ------------------------------------------  

     ttl key 查看键的过期时间

     127.0.0.1:6379> ttl Fm_80/UserJinbiLogList/194361483

     (integer) -1

     -1, 如果key没有到期超时

     

     

     ----------del name 删除key name-----

     127.0.0.1:6379> del Fm_80/UserJinbiLogList/162896690

     (integer) 1

     

     -------------新建一个key,删除一个key-----

     127.0.0.1:6379> set job "andrio"

     OK

     127.0.0.1:6379> EXISTS job

     (integer) 1

     

     

     ----------ping PONG返回响应是否连接成功---

     127.0.0.1:6379> ping

     PONG

     ----------select 0~15 编号的数据库---------

     127.0.0.1:6379[1]> select 15

     OK

     --------------慎用,以至于不用!!!----------------------.

     

           flushdb 删除当前选择数据库中的所有key

     

           flushall 删除所有数据库中的数据库

      

     ------------      

     select 0 选择到0数据库 redis默认的数据库是0~15一共16个数据库

     move confirm 1 将当前数据库中的key移动到其他的数据库中,这里就是把confire这个key从当前数据库中移动到1中

     rename key2 key3 重命名key2 为key3

     type key2 返回key的数据类型

     move confirm 1 将当前数据库中的key移动到其他的数据库中,这里就是把confire这个key从当前数据库中移动到1中

     expire confirm 100 设置confirm这个key100秒过期

     

     ------------------查看有多少个key-----------------------------

     127.0.0.1:6379> DBSIZE

     (integer) 1415502


webphp静态文件,需要部署php

      PHP搭建:

      1、可以分为yum安装与源码安装,但是源码安装存在各种依赖包问题

         #安装php依赖软件

       yum -y install autoconf automake bzip2-devel freetype-devel gcc-c++ libcurl-devel libgcrypt-devel \

       libicu-devel libjpeg-turbo-devel libpng-devel libxml2-devel libxslt-devel ncurses-devel openjpeg-devel \

       openjpeg-libs openldap-devel openssl-devel pcre-devel readline-devel zlib-devel  

            这只是其中一部分,请执行yum, 分外,yum -y install php (强制安装php所依赖的包,可以使用)

         2、今天使用的php是源码,php-5.3.0.tar.gz,步骤一也要执行,防止依赖包困扰,                            http://www.cnblogs.com/lufangtao/archive/2012/12/30/2839679.html

         3、进入解压包  ./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache2/bin/apxs --enable-fpm

            其实系统自带http服务,但是涉及php需要依赖http环境,所以我们下载httpd-2.2.31.tar.gz                  http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.html

                                                           apache2安装  ./configure --prefix=/usr/local/apache2   以下make  以下 make install继续

       返回php安装 configure之后进入编译安装  make  然后 make install,即可



    系统再带的http服务占用80端口,必须取消httpd服务自启动。防止与后装的apache2端口冲突

4、配置文件(满足最基本的配置)

                  编辑 /usr/local/apache2/conf/httpd.conf 文件     

                找到AddType  application/x-compress .Z

                   AddType application/x-gzip .gz .tgz

               在后面添加:

                   AddType application/x-httpd-php .php(使Apcche支持PHP)

                   AddType application/x-httpd-php-source .php5   

               找到:

                 <IfModule dir_module>

                 DirectoryIndex index.html

                  </IfModule>

               添加:

                 <IfModule dir_module>

                 DirectoryIndex index.html index.php

                 </IfModule>   

               找到:

               #ServerName www.example.com:80

               修改为:

               ServerName 127.0.0.1:80或者ServerName localhost:80

               记得要去掉前面的“#”

5、访问192.168.182.5  页面显示 it work  表示apache2安装成功,访问的页面来自于 /usr/local/apache2/htdocs/index.html

          今天是为了能顺利解决php环境,我把phpredisadmin包放进/usr/local/apache2/htdocs

  访问http://192.168.182.5/phpredisadmin/index.php   跳转     http://192.168.182.5/phpredisadmin/?overview   。php页面显示正常(如果没有安装php,即使访问php页面,也是代码页,出不来php页面效果)

  太棒了,php服务器搭建成功


重点,6、php服务器搭建成功了,解决redis web管理问题    来源于    -------https://my.oschina.net/u/2416477/blog/486481

        经过编辑,生成 phpredisadmin   后面redis可以直接使用!!!

  下面验证 redis web管理是否有效

  打开  http://192.168.182.5/phpredisadmin/index.php

  





  phpRedisAdmin


  


                 [I] [E] [I]

                 

                 Add another key

                 

                 

                 *

                  Filter!Q

                 

                 

                 type here to filter

                 

                 Keys (2)                                  ----------------所有的key

                 chen

                 wang


  

--------------------------------look  

       点击 Add another key  新建叫wang的key,value内容写一串。。。。  刷新,keys确实存在 wang

  

  去服务器   执行 ./redis-cli   启用redis客户端 执行

  127.0.0.1:6379> keys *

       1) "chen"

       2) "wang"

  存在叫做wang的key,redis web 可用!!!


###############关于

一:如果说多个redis用于一个项目,可以做redis集群,使用keepalived也可以使用,在php中phpredisadmin配置文件中192.168.182.6改为redis集群VIP即可

二:关于多个项目,完全不在同一业务的redis,怎么破?phpredisadmin给了完整答案




很多源码例如nginx都会提供default.conf用以模板化解决提供,多实例。!!!可以添加,这儿不多说

  wKiom1h4PuPB15qQAAA17fhqZKI304.png-wh_50--楼主也未配置,可以研究下

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-329328-1-1.html 上篇帖子: redis 单点部署 下篇帖子: redis3.0集群搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表