REDIS 实战

  • Post author:
  • Post category:其他




redis 数据库基于lamp架构



部署环境
# 部署redis 环境
[root@redis-master ~]# mkdir -p /data/application     ---创建工作目录
[root@redis-master ~]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz   ---下载redis
[root@redis-master ~]# tar xzf redis-4.0.9.tar.gz -C /data/application/    ---解压
[root@redis-master ~]# cd /data/application/
[root@redis-master application]# mv redis-4.0.9/ redis 
[root@redis-master application]# cd redis/
[root@redis-master redis]# yum install -y gcc make  #安装编译工具
[root@redis-master redis]# make
注:如果报错请将刚才解压的安装包删除掉,再次重新解压并进行make安装即可。
[root@redis-master redis]# cp redis.conf redis.conf.bak
[root@redis-master redis]# vim redis.conf     ---修改如下
bind 192.168.246.202  #只监听内网IP
daemonize yes     #开启后台模式将on改为yes
timeout 300      #连接超时时间
port 6379                      #端口号
dir /data/application/redis/data  #本地数据库存放持久化数据的目录该目录-----需要存在
pidfile /var/run/redis_6379.pid  #定义pid文件
logfile /var/log/redis.log  #定义log文件
创建存放数据的目录
[root@redis-master redis]# mkdir /data/application/redis/data
配置redis为systemctl启动
[root@redis-master redis]# cd /lib/systemd/system
[root@redis-master system]# vim redis.service
[Unit]
Description=Redis
After=network.target

[Service]
ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf  --daemonize no
ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown

[Install]
WantedBy=multi-user.target

参数详解:
• [Unit] 表示这是基础信息 
• Description 是描述
• After 是在那个服务后面启动,一般是网络服务启动后启动

• [Service] 表示这里是服务信息 
• ExecStart 是启动服务的命令
• ExecStop 是停止服务的指令

• [Install] 表示这是是安装相关信息 
• WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
启动服务:
[root@redis-master system]# systemctl daemon-reload
[root@redis-master system]# systemctl start redis.service

查看端口

在这里插入图片描述

# 部署mariadb
[root@redis-master ~]# yum install -y mariadb mariadb-server mariadb-devel
[root@redis-master ~]# systemctl start mariadb
[root@redis-master ~]# mysqladmin -uroot password 123456
## 配置测试数据
https://blog.csdn.net/NewRain_wang/article/details/103541196
# 部署apache
[root@redis-master ~]# yum install -y httpd
[root@redis-master ~]# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.php
# 部署php
[root@redis-master ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
[root@redis-master ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[root@redis-master ~]# yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64 php70w-devel zlib-devel php70w-fpm php70w-pecl-redis  -y


测试代码
[root@redis-master ~]# vim /var/www/html/index.php
<?php
$redishost = '127.0.0.1';
$redisport = 6379;
$redis = new Redis;
$redis->connect($redishost,$redisport) or die ("Could not connect");
$query="select emp_no,salary from salaries where emp_no = 10001";
#$query="select id,name from tt1";
$key=md5($query);
if(!$redis->get($key))
{
                $conn=mysqli_connect("localhost","root","123456","employees");
                $result=mysqli_query($conn,$query);
                while ($row=mysqli_fetch_assoc($result))
                {
                        $arr[]=$row;
                }
                $f = 'mysql';
                $redis->set($key,serialize($arr));
                $data = $arr ;
}
else{
        $f = 'redis';
        $data_mem=$redis->get($key);
        $data = unserialize($data_mem);
}
echo $f;
echo "<br>";
echo "$key";
echo "<br>";
//print_r($data);
foreach($data as $a)
{
                echo "key is  <b><font color=#FF0000>$a[emp_no]</font></b>";
                echo "<br>";
                echo "value is <b><font color=#FF0000>$a[salary]</font></b>";
                echo "<br>";
}
?>



浏览器访问

在这里插入图片描述

ps redis mysql 数据库一致性问题

https://yq.aliyun.com/articles/712285



版权声明:本文为NewRain_wang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。