NoSQL--Redis

NoSQL

        字面意思不仅仅是SQL

        泛指非关系型数据库

        不需要预先定义数据存储结构

        每条记录可以有不同的数据类型和字段个数

NoSQL主流软件

        Memcached

        Redis

        MongoDB

适用于存储的数据:消息队列 地理位置 计数器 微博点赞 缓存常用的查询 session共享

部署Redis服务

Remote Dictionary Server(远程字典服务器)

是一款高性能的key/value分布式内存数据库

支持数据持久化 (定期把内存里数据存储到硬盘)

支持master-slave模式备份数据

www.redis.cn中文网站

安装源码redis软件

[root@redis1 ~]# yum -y install gcc 
[root@redis1 ~]# tar -xf redis-4.0.8.tar.gz
[root@redis1 ~]# cd redis-4.0.8/
[root@redis1 redis-4.0.8]# make
[root@redis1 redis-4.0.8]# make install
[root@redis1 utils]# ./install_server.sh  #执行初始化脚本确认配置
Welcome to the redis service installer
This script will help you easily set up a running redis server
Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379                   //端口号
Config file    : /etc/redis/6379.conf         //配置文件目录
Log file       : /var/log/redis_6379.log      //日志目录
Data dir       : /var/lib/redis/6379          //数据库目录
Executable     : /usr/local/bin/redis-server  //启动程序的目录
Cli Executable : /usr/local/bin/redis-cli     //命令行的连接工具
Is this ok? Then press ENTER to go on or Ctrl-C to abort.  //回车完成配置
Copied /tmp/6379.conf => /etc/init.d/redis_6379   
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...  //提示服务已经启动
Installation successful!        //提示安装成功


/etc/init.d/redis_6379 status //查看状态running
netstat -antupl |grep 6379 //查看端口
 ps  -C redis-server  //查看进程

服务停止与启动

[root@redis1 utils]# /etc/init.d/redis_6379 stop
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
[root@redis1 utils]# /etc/init.d/redis_6379 start

连接redis服务

redis-cli //默认连接127.0.0.1地址的 6379端口

127.0.0.1:6379> ping

PONG            //PONG说明服务正常

常用命令

  • set mset get mget keys type
  • exists ttl expire设置变量过期时间 move 、select
  • del flushdb库 flushall内存 save shutdown断开连接

修改Redis服务运行参数(修改主配置文件)

[root@redis1 ~]# /etc/init.d/redis_6379 stop
[root@redis1 ~]# vim /etc/redis/6379.conf
...
bind  192.168.88.51                //设置服务使用的ip
port 6351                            //更改端口号
requirepass 123456                //设置密码
:wq

 修改启动脚本

[root@redis1 ~]# vim  +43  /etc/init.d/redis_6379
$CLIEXEC -h 192.168.88.51 -p 6351 -a 123456  shutdown
:wq

测试配置

redis-cli -h 192.168.88.51 -p 6351 -a 123456 //访问服务

内存管理

内存空间不足时,删除与存储数据的方式

LRU删除最近最少使用

        volatile-lru ----针对设置了ttl的

        allkeys-lru ----针对全部key

LFU删除使用频率最少的

        volatile-lfu

        allkeys-lfu

RANDOM随即删除

        volatile-random

        allkey-random

volatile-ttl 删除快要过期的

noeviction 不要删除

部署LNP+Redis

1.安装源码nginx软件及php-fpm

Host50~]#yum  -y  install  gcc    pcre-devel  zlib-devel  //安装依赖
Host50~]#tar  -xf  nginx-1.12.2.tar.gz  //解压
Host50~]#cd nginx-1.12.2  //进源码目录
Host50 nginx-1.12.2]#./configure  //配置
Host50 nginx-1.12.2]#make //编译
Host50 nginx-1.12.2]#make  install //安装
Host50 nginx-1.12.2]#yum   -y  install php  php-fpm  //安装php-fpm

修改配置nginx.conf

Host50~] # vim   +65  /usr/local/nginx/conf/nginx.conf
      location ~ \.php$ {
              root           html;
              fastcgi_pass   127.0.0.1:9000;
              fastcgi_index  index.php;
              include        fastcgi.conf;
       }
:wq
Host50~]#  /usr/local/nginx/sbin/nginx  -t     //测试修改
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

启动服务(php-fpm、nginx)

Host50~]#systemctl  start php-fpm  //启动服务
Host50~]#netstat  -utnlp  | grep  9000  //查看端口
Host50~]#/usr/local/nginx/sbin/nginx
Host50~]#netstat  -utnlp  | grep  :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      23505/nginx: master

测试配置

Host50~]# vim  /usr/local/nginx/html/test.php  //编写php文件
<?php
        echo  "hello world!!!";
?>
:wq
Host50~]# curl  http://localhost/test.php     //访问nginx服务
                hello world!!!

配置PHP支持redis

Host50~]# tar -xf redis-cluster-4.3.0.tgz //安装扩展包
Host50~]# cd redis-4.3.0
Host50~]# phpize            //生成配置文件php-config及 configure命令
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
Host50~]# ./configure  --with-php-config=/usr/bin/php-config //配置
Host50~]# make //编译
Host50~]# make install //安装
#提示模块的安装目录
Installing shared extensions:     /usr/lib64/php/modules/   
[root@host50 redis-4.3.0]# 
#查看目录下的模块列表 有redis.so 模块文件即可
[root@host50 redis-4.3.0]# ls /usr/lib64/php/modules/  
curl.so      json.so    mysql.so      pdo.so         phar.so   sqlite3.so
fileinfo.so  mysqli.so  pdo_mysql.so  pdo_sqlite.so  redis.so  zip.so
[root@host50 redis-4.3.0]# 

修改php.ini文件

Host50~]#vim /etc/php.ini
728 extension_dir = "/usr/lib64/php/modules/"  //模块文件目录
730 extension = "redis.so"  //模块文件名
:wq
Host50~]# systemctl  restart php-fpm //重启php-fpm服务
Host50~]# php -m | grep  -i redis     //查看已加载的模块
redis

测试配置:编写网站脚本,把数据存储到redis服务器

Host50~]# vim  /usr/local/nginx/html/linkredis.php
<?php
$redis = new redis();
$redis->connect(“192.168.88.51”,”6351”);
$redis->auth(“123456”); #连接密码(如果Redis服务没有密码可以不写)
$redis->set(“linux”,”redhat”);
echo $redis->get(“linux”);
?>
:wq 


Host50~]#curl  http://localhost/linkredis.php      //访问nginx服务
redhat   

查看数据

[root@host51 ~]# redis-cli -h 192.168.88.51 -p 6351 -a 123456 //连接redis服务
192.168.88.51:6351> keys *   //查看变量
1) "linux"
192.168.88.51:6351> get linux //获取值
"redhat"
192.168.88.51:6351> 

你需要知道

1 什么是RDBMS

关系型数据库,按照预先定义的表结构存储数据,存储在物理介质上,数据之间可以做关联操作

2 主流的RDBMS软件有哪些

mysql mariadb sql server

3 什么是NOSQL以及软件有哪些

不仅仅是SQL 

泛指非关系型数据库

对表的存储结构不需要预先定义,表的每条记录都可以由不同的类型和结构

4 redis介绍

存储键值对分布式数据库

数据的持久化(内存固定时间存到硬盘)

支持多种数据类型string list set zset

支持master-slave模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

small white poplar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值