NoSQL概述,部署Redis,部署LNMP+Redis

数据库类型

RDBMS
  • 关系型数据库管理系统
  1. Relational Database Management System
  2. 按照预先设置的组织结构,将数据存储在物理介质是上
  3. 数据之间可以做关联操作

RDBMS服务软件

  • 主流的RDBMS软件
    Oracle、DB2、MS SQL Server、MySQL、MariaDB
NoSQL
  • NoSQL(NoSQL=Not Only SQL)
  1. 意思是“不仅仅是SQL”
  2. 泛指非关系型数据库
  3. 不需要预先定义数据存储结构
  4. 表的每条记录都可以有不同的类型和结构

NoSQL服务软件

  • 主流软件
    Redis、MongoDB、Memcached、CouchDB、Neo4j、FlockDB

部署Redis服务

Redis介绍

  • Redis Remote Dictionary Server(远程字典服务器)
  1. 是一款高性能的(Key/Values)分布式内存数据库
  2. 支持数据持久化,可以把内存里的数据保存到硬盘中
  3. 也支持list、hash、set、zset 数据类型
  4. 支持master-salve模式数据备份
  5. 中文网站www.redis.cn

一、装包

从源码安装

[root@ip50 redis]# yum -y install gcc  //安装编译环境
[root@ip50 redis]# tar -zxvf redis-4.0.8.tar.gz
[root@ip50 redis]# cd redis-4.0.8/
[root@ip50 redis-4.0.8]# make && make install 

二、初始化配置

配置服务运行参数

  • 端口
  • 主配置文件
  • 数据库目录
  • pid文件
  • 启动程序
[root@ip50 redis-4.0.8]# cd utils/
[root@ip50 utils]# ./install_server.sh   //初始化

三、启动/停止服务

默认初始化完毕之后服务就是启动的

(1)启动服务

[root@ip50 utils]# /etc/init.d/redis_6379 start

(2)停止服务

[root@ip50 utils]# /etc/init.d/redis_6379 stop

四、连接Redis数据库服务

访问redis服务

[root@ip50 ~]# ps -C redis-server
[root@ip50 ~]# ss -ntulp | grep redis-server
[root@ip50 ~]# redis-cli     //连接本机的redis数据库服务

五、常用操作指令

set keyname keyvalue存储
get keyname获取
select 数据库编号0-15切换库
keys *打印所有变量
keys a?打印指定变量
EXISTS keyname测试该变量是否存在
ttl keyname查看生存时间
type keyname查看类型
move keyname keyname移动变量
expire keyname 10设置有效时间
del keyname删除变量
flushall删除所有变量
save保存所有变量,立刻将内存中的数据写入到硬盘
shutdown关闭redis服务
127.0.0.1:6379> SET school tarena     //存值
127.0.0.1:6379> KEYS *				//打印所有的key值
127.0.0.1:6379> get school			//根据key值获取value
127.0.0.1:6379> EXISTS school		//  0不存在,1存在
127.0.0.1:6379> ttl school			//-1表示永不过期,-2变量已过期
127.0.0.1:6379> move a 1			//将变量a移动到1号数据库
127.0.0.1:6379> keys a				//打印a变量
127.0.0.1:6379> expire school 200    //设置school变量名过期时间是200s,过期后会被从内存中清除
127.0.0.1:6379> type school			//查看school变量的类型
127.0.0.1:6379> del school			//删除变量
127.0.0.1:6379> flushall			//删除所有变量
常用配置选项
port 6379端口
bind 127.0.0.1ip地址,可以空格隔开写多个地址
tcp-backlog 511tcp连接总数
timeout 0连接超时时间
tcp-keepalive 300长连接保持时间
daemonize yes守护进程方式运行(时刻活跃,设置为NO就是没有任务处理的时候,redis会处于休眠状态,有任务处理时会被系统唤醒处理任务)
databases 16数据库个数
logfile /var/log/redis_6379.logpid文件
maxclients 10000并发连接数
dir /var/lib/redis/6379数据目录
内存管理
  • 内存清除策略
  1. volatile-lru //最近最少使用(针对设置了TTL的key)
  2. allkeys-lru //删除最少使用的key
  3. volatile-random //在设置了TTL的key里随机移除
  4. allkeys-random //随机移除key
  5. volatile-ttl (minor TTL) //移除最近过期的key
  6. noeviction //不删除,写满时报错
  • 选项默认设置
  1. maxmemory <bytes> //最大内存
  2. maxmemory-policy noeviction //定义使用策略
  3. maxmemory-samples 5 //选取模板数据的个数(针对lru和ttl策略)

设置密码

[root@ip50 ~]# vim /etc/redis/6379.conf 
... ...
requirepass 123456
... ... 

重启服务

[root@ip50 ~]# /etc/init.d/redis_6379 stop
[root@ip50 ~]# /etc/init.d/redis_6379 start

使用密码登录

[root@ip50 ~]# redis-cli -a 123456
或者
[root@ip50 ~]# redis-cli 
127.0.0.1:6379> auth 123456

修改了密码之后无法正常停止redis

需要这样执行

[root@ip50 ~]# redis-cli -a 123456 shutdown
[root@ip50 ~]# /etc/init.d/redis_6379 start

停止redis修改默认的ip跟端口

[root@ip50 ~]# redis-cli -a 123456 shutdown
[root@ip50 ~]# vim /etc/redis/6379.conf 
... ...
bind 192.168.4.50
port 6350
... ...
[root@ip50 ~]# /etc/init.d/redis_6379 start
[root@ip50 ~]# redis-cli -h 192.168.4.50 -p 6350  -a 123456  //进入服务

端口、ip地址、密码修改后必须这样操作停止服务

[root@ip50 ~]# redis-cli -h 192.168.4.50 -p 6350 -a 123456 shutdown

修改启动脚本

[root@ip50 ~]# vim /etc/init.d/redis_6379 
... ...
PID=$(cat $PIDFILE)
            echo "Stopping ..."
            $CLIEXEC -p 6350 -h 192.168.4.50 -a 123456 shutdown
            while [ -x /proc/${PID} ]
            do
                echo "Waiting for Redis to shutdown ..."
                sleep 1
            done
            echo "Redis stopped"
... ...

[root@ip50 ~]# /etc/init.d/redis_6379 stop
[root@ip50 ~]# /etc/init.d/redis_6379 start

部署LNMP+Redis

一、部署LNMP请参考这篇文章 LNMP搭建

二、配置php支持redis

(1)安装redis服务
(2)配置php支持redis

[root@ip56 ~]# yum -y install php
[root@ip56 ~]# cd redis/lnmp/
[root@ip56 lnmp]# yum -y install php-devel-5.4.16-42.el7.x86_64.rpm
[root@ip56 lnmp]# tar -xf php-redis-2.2.4.tar.gz 
[root@ip56 lnmp]# cd phpredis-2.2.4/
[root@ip56 phpredis-2.2.4]# phpize   //扩展模块
[root@ip56 phpredis-2.2.4]# ./configure --with-php-config=/usr/bin/php-config
[root@ip56 phpredis-2.2.4]# make && make install
[root@ip56 ~]# ls /usr/lib64/php/modules/       //查看php支持哪些模块
[root@ip56 ~]# vim /etc/php.ini   //修改配置文件,添加redis模块
... ...
extension_dir = "/usr/lib64/php/modules/"
; On windows:
extension = "redis.so"
... ...
[root@ip56 ~]# systemctl restart php-fpm
[root@ip56 ~]# php -m | grep -i redis     //验证模块是否加载成功
[root@ip56 ~]# vim /usr/local/nginx/html/setRedis.php   //编写php连接本地redis的脚本

<?php
$redis = new redis();
$redis->connect('127.0.0.1',6379);
$redis->set('redistest','666666');
echo $redis->get('redistest');
?>

[root@ip56 ~]# curl http://localhost/setRedis.php  //调用php
[root@ip56 ~]# redis-cli //验证
127.0.0.1:6379> keys *
1) "redistest"
2) "x"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值