NoSQL概述,部署Redis,部署LNMP+Redis
2019-05-21 17:03
1886 查看
数据库类型
RDBMS
- 关系型数据库管理系统
- Relational Database Management System
- 按照预先设置的组织结构,将数据存储在物理介质是上
- 数据之间可以做关联操作
RDBMS服务软件
- 主流的RDBMS软件
Oracle、DB2、MS SQL Server、MySQL、MariaDB
NoSQL
- NoSQL(NoSQL=Not Only SQL)
- 意思是“不仅仅是SQL”
- 泛指非关系型数据库
- 不需要预先定义数据存储结构
- 表的每条记录都可以有不同的类型和结构
NoSQL服务软件
- 主流软件
Redis、MongoDB、Memcached、CouchDB、Neo4j、FlockDB
部署Redis服务
Redis介绍
- Redis Remote Dictionary Server(远程字典服务器)
- 是一款高性能的(Key/Values)分布式内存数据库
- 支持数据持久化,可以把内存里的数据保存到硬盘中
- 也支持list、hash、set、zset 数据类型
- 支持master-salve模式数据备份
- 中文网站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.1 | ip地址,可以空格隔开写多个地址 |
tcp-backlog 511 | tcp连接总数 |
timeout 0 | 连接超时时间 |
tcp-keepalive 300 | 长连接保持时间 |
daemonize yes | 守护进程方式运行(时刻活跃,设置为NO就是没有任务处理的时候,redis会处于休眠状态,有任务处理时会被系统唤醒处理任务) |
databases 16 | 数据库个数 |
logfile /var/log/redis_6379.log | pid文件 |
maxclients 10000 | 并发连接数 |
dir /var/lib/redis/6379 | 数据目录 |
内存管理
- 内存清除策略
volatile-lru
//最近最少使用(针对设置了TTL的key)allkeys-lru
//删除最少使用的keyvolatile-random
//在设置了TTL的key里随机移除allkeys-random
//随机移除keyvolatile-ttl (minor TTL)
//移除最近过期的keynoeviction
//不删除,写满时报错
- 选项默认设置
maxmemory <bytes>
//最大内存maxmemory-policy noeviction
//定义使用策略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"
相关文章推荐
- NoSql数据库介绍 + Redis概述和安装
- NoSQL与Memcached、Redis、MongoDB概述
- NoSql数据库Redis的在ubuntu下的部署使用
- 【NoSql】redis安装&部署
- NoSQL概述和Redis的安装
- 【Nosql-安装教程】Linux环境下安装和部署Redis步骤
- Redis总结--nosql入门以及概述
- redis之NoSQL入门和概述及应用
- NoSQL数据库之Redis数据库:Redis的介绍与安装部署
- redis_NoSql入门概述(一)
- NoSQL数据库之Redis数据库:Redis的介绍与安装部署(redis-2.8.19/3.2.5)
- 部署LNMP+Redis(mongodb,并测试远程写入mysql数据主机)
- redis_NoSql入门概述
- Redis--NoSQL入门概述
- Redis(一)——NoSQL入门和概述
- redis_NoSql入门概述
- redis_NoSql入门概述(三)
- NoSQL——Redis概述
- LNMP+MEM+redis架构部署(扩展) 推荐
- redis_NoSql入门概述(二)