乐之网站制作,天津天狮网络营销课程,美食创意网页设计,杭州教育培训网站建设一、数据库类型
关系数据库管理系统#xff08;RDBMS#xff09;非关系数据库管理系统#xff08;NoSQL#xff09;
按照预先设置的组织机构#xff0c;将数据存储在物理介质上(即#xff1a;硬盘上) 数据之间可以做无关联操作 (例如: 多表查询#xff0c;嵌套查询RDBMS非关系数据库管理系统NoSQL
按照预先设置的组织机构将数据存储在物理介质上(即硬盘上) 数据之间可以做无关联操作 (例如: 多表查询嵌套查询外键等)
主流的RDBMS软件MySQL、MariaDB、Oracle、DB2、SQL Server要存储的数据是有固定格式的(例如要向银行存现金需要录入姓名年龄金额家庭住址等)并且是永久存储的类似这种对于同一个业务录入数据的方式一样的采用关系型数据库。
二、NoSQLNoSQL Not Only SQL
意思是“不仅仅是SQL” 泛指非关系型数据库不需要预先定义数据存储结构每条记录可以有不同的 数据类型 和 字段个数
NoSQL主流软件Memcached、Redis、MongoDB、Neo4j、FlockDB
三、Redis介绍
Remote Dictionary Server(远程字段服务器)是一款高性能的Key/Values分布式内存数据库 支持数据持久化定期把内存里数据存储到硬盘 支持多种数据类型 string、list、hash 支持 master-slave 模式数据备份
中文网站 www.redis.cn
四、部署Redis服务
环境准备创建template主机ip地址为192.168.11.10 PS官网稳定版6的版本编译的时候一直报错找不到src目录 换成4版本成功的截图 步骤一直接wget下载到/root目录下
[roottemplate ~]# wget -c http://download.redis.io/releases/redis-4.0.8.tar.gz步骤二源码编译安装
# 安装编译环境gcc gcc-c
[roottemplate~]# yum -y install gcc# 解压到指定目录个人习惯
[roottemplate ~]# tar xf redis-4.0.8.tar.gz -C /usr/local/# 进入目录
[roottemplate ~]# cd /usr/local/redis-4.0.8/
[roottemplate redis-4.0.8]# ls
00-RELEASENOTES CONTRIBUTING deps Makefile README.md runtest runtest-moduleapi sentinel.conf tests utils
BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster runtest-sentinel src TLS.md# 编译安装
[roottemplate redis-4.0.8]# make make install# 测试
[roottemplate redis-4.0.8]# redis-
redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server步骤三初始配置配置服务运行参数
[roottemplate utils]# pwd
/usr/local/redis-4.0.8/utils
[roottemplate utils]# ./install_server.sh 执行源码目录下的初始化脚本
端口 6379
主配置文件 /etc/redis/6379.conf
日志文件 /var/log/redis_6379.log
数据库目录 /var/lib/redis/6379
服务启动程序 /usr/local/bin/redis-server
命令行连接命令 /usr/local/bin/redis-cli# 运行初始化脚本一路回车即可
Welcome to the redis service installer
This script will help you easily set up a running redis server选择redis端口号【6379】 回车确认
Please select the redis port for this instance: [6379] Selecting default: 6379
选择redis主配置文件【/etc/redis/6379.conf】 回车确认
Please select the redis config file name [/etc/redis/6379.conf] Selected default - /etc/redis/6379.conf
选择redis日志文件【/var/log/redis_6379.log】 回车确认
Please select the redis log file name [/var/log/redis_6379.log] Selected default - /var/log/redis_6379.log
选择redis数据库目录【/var/lib/redis/6379】 回车确认
Please select the data directory for this instance [/var/lib/redis/6379] Selected default - /var/lib/redis/6379
选择redis启动程序【/usr/local/bin/redis-server】 回车确认
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确认则选择回车即可否则按 Ctrl C 重新配置
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! #安装成功步骤四查看redis的启动端口号
[roottemplate utils]# ss -lntup | grep redis
tcp LISTEN 0 128 127.0.0.1:6379 *:* users:((redis-server,pid9043,fd6))步骤五管理redis服务通过脚本的方式停止redis的服务
[roottemplate utils]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[roottemplate utils]#
[roottemplate utils]#
[roottemplate utils]# ss -lntup | grep redis步骤六重新开启redis服务
[roottemplate utils]# /etc/init.d/redis_6379 start
Starting Redis server...
[roottemplate utils]# ss -lntup | grep redis
tcp LISTEN 0 128 127.0.0.1:6379 *:* users:((redis-server,pid10977,fd6))步骤七连接服务redis-cli 默认连接本机的redis服务
[roottemplate utils]# redis-cli# 使用ping命令查看连接是否成功结果是PONG则代表redis正常连接
127.0.0.1:6379 ping
PONG
127.0.0.1:6379
127.0.0.1:6379 keys * #使用keys命令查看当前库下的所有数据
127.0.0.1:6379 set school tarena #使用set命令存入数据school:tarena
127.0.0.1:6379 get school #使用get命令从内存中取出变量school对应的值
127.0.0.1:6379 keys * #使用keys命令查看当前库下的所有数据
127.0.0.1:6379 exit #断开redis连接五、基本操作命令
PS可以借助官方文档Redis Documentation | Redis Documentation Center
[roottemplate utils]# redis-cli
127.0.0.1:6379 ping
PONG
127.0.0.1:6379# set命令存数据给变量赋值(x:99)【给单个变量赋值】
127.0.0.1:6379 set x 99# mset命令存数据给变量赋值(i:77),(j:88),(k:99)【给多个变量同时赋值】
127.0.0.1:6379 mset i 77 j 88 k 99# get命令取数据获取变量i的值【获取单个变量的值】
127.0.0.1:6379 get i# mget命令取数据获取多个变量j,k,x的值【获取多个变量的值】
127.0.0.1:6379 mget i j k
1) 77
2) 88
3) 99# keys命令显示所有的变量名【* 代表所有】
127.0.0.1:6379 keys *
1) j
2) i
3) k
4) x# keys命令显示变量名为一个字符的变量【? 代表单个字符】
127.0.0.1:6379 keys ?
1) j
2) i
3) k
4) x# keys命令显示变量名为六个字符的变量【? 代表单个字符】
127.0.0.1:6379 keys ??????# keys命令显示age的变量名不存在即为空
127.0.0.1:6379 keys age
(empty list or set)# keys命令显示school的变量名存在
127.0.0.1:6379 keys school# type命令查看变量i的类型【string 为字符类型】
127.0.0.1:6379 type i
string# set命令存数据给z赋值(z:10)【给单个变量赋值】
127.0.0.1:6379 set z 10# type命令查看变量z的类型【string 为字符类型】
127.0.0.1:6379 type z
string# lpush命令存数据给变量赋值(hostname:pc99,pc88)【列表类型】
127.0.0.1:6379 lpush hostname pc99 pc88
(integer) 2# type命令查看变量hostname的类型【list 为列表类型】
127.0.0.1:6379 type hostname
list# exists命令检查变量是否存在重复给一个变量赋值会覆盖上一次变量的值
返回值为1代表变量存在返回值为0则代表变量不存在
127.0.0.1:6379 exists hostname
(integer) 1注意在redis中使用set和mset存入的数据数据类型都是字符类型# keys命令查看redis中所有的变量
127.0.0.1:6379 keys *# ttl命令查看变量有效期-1 为永不过期【不重启redis服务和清空内存的情况下】
127.0.0.1:6379 ttl j
(integer) -1# expire命令设置变量j的有效期为20秒
127.0.0.1:6379 expire j 20
(integer) 1# ttl命令查看变量有效期16秒
127.0.0.1:6379 ttl j
(integer) 16# ttl命令查看变量有效期当变量的有效期为-2时到期该变量会被删除
127.0.0.1:6379 ttl j
(integer) -2# exists命令检查变量是否存在,变量被删除返回值为1代表变量存在返回值为0则代表变量不存在
127.0.0.1:6379 exists j
(integer) 0# select命令切换库切换到编号3的库下
127.0.0.1:6379 select 3# 当前处于编号3库下, select命令切换到编号1的库下
127.0.0.1:6379[3] select 1
OK# 当前处于编号1库下, select命令切换到编号0的库下
127.0.0.1:6379[1] select 0
OK# 当前处于编号0库下查看0库下所有的变量
127.0.0.1:6379 keys *# 将编号0库下的变量school移动到编号1的库下
127.0.0.1:6379 move school 1
(integer) 1# 将编号0库下的变量x移动到编号2的库下
127.0.0.1:6379 move x 2
(integer) 1# 编号0库下变量school和变量x消失
127.0.0.1:6379 keys *# 查看编号1库下的所有变量变量school移动过来了
127.0.0.1:6379 select 1
127.0.0.1:6379[1] keys *# 查看编号2库下的所有变量变量x移动过来了
127.0.0.1:6379[1] select 2
127.0.0.1:6379[2] keys *# save命令把内存中的数据保存到硬盘中
127.0.0.1:6379[2] save
127.0.0.1:6379[2] exit# 执行save命令后内存中的数据被保存到下面文件中
[roottemplate utils]# ls /var/lib/redis/6379/
dump.rdb# 连接数据库 redis-cli
# del命令删除变量i
127.0.0.1:6379 del i
(integer) 1# flushdb命令删除当前所在库下的所有数据
127.0.0.1:6379 flushdb# 查看编号0库下的所有变量为空
127.0.0.1:6379 keys *127.0.0.1:6379 select 1 #切换到其他库下还有数据
127.0.0.1:6379[1] keys *# flushall命令删除redis所有库下的数据
127.0.0.1:6379[0] flushall
127.0.0.1:6379[1] keys *
127.0.0.1:6379[1] select 2
127.0.0.1:6379[2] keys *
# shutdown停止服务
127.0.0.1:6379[2] shutdown
not connected exit
[roottemplate utils]]# ss -antlp | gre p6379六、配置文件解析
1、查看redis配置文件信息,修改配置时在对应的模块下写即可
[roottemplate ~]# vim /etc/redis/6379.conf.........
############################# INCLUDES ##############################.........
############################# MODULES ##############################.........
############################# NETWORK ##############################.........
############################# GENERAL ##############################2、数据单位不区分字母大小写
[roottemplate ~]# vim /etc/redis/6379.conf
# 1k 1000 bytes
# 1kb 1024 bytes
# 1m 1000000 bytes
# 1mb 1024*1024 bytes
# 1g 1000000000 bytes
# 1gb 1024*1024*1024 bytes
3、查看redis常用配置信息
守护进程指进程会一直存在等待用户访问耗资源客户端访问速度快 非守护进程当服务运行后如果一段时间内没有用户访问服务会进入到休眠状态当有用户访问时服务会被唤醒供用户去访问节省资源客户端访问速度慢一些 70 bind 127.0.0.1 #指定客户访问的IP地址这里只允许本机访问93 port 6379 #指定redis的访问端口137 daemonize yes #以守护进程方式运行(进程一直存在等待用户访问)172 logfile /var/log/redis_6379.log #记录redis运行的启动和运行过程中的信息187 databases 16 #数据库个数默认16个可以修改264 dir /var/lib/redis/6379 #定义数据库目录533 # maxclients 10000 #客户端同时访问redis的并发数量默认100004、内存管理查看内存清除策略
.........562 # MAXMEMORY POLICY: how Redis will select what to remove when maxmemory563 # is reached. You can select among five behaviors:564 #565 # volatile-lru - 向redis中存入数据时数据已满则会在设置了TTL过期时间的变量中选择删除最近最少使用的key,用于存放新的key;566 # allkeys-lru - 向redis中存入数据时数据已满则会在所有的变量中选择删除最近最少使用的key,用于存放新的key;567 # volatile-lfu - 向redis中存入数据时数据已满则会在设置了TTL过期时间的变量中选择删除使用频率最少的key,用于存放新的key;568 # allkeys-lfu - 向redis中存入数据时数据已满则会在所有的变量中选择删除使用频率最少的key,用于存放新的key;569 # volatile-random - 向redis中存入数据时数据已满则会在设置了TTL过期时间的变量中选择随机删除key,用于存放新的key;570 # allkeys-random - 向redis中存入数据时数据已满则会在所有的变量中选择随机删除key,用于存放新的key;571 # volatile-ttl - 向redis中存入数据时数据已满删除最近过期的key;572 # noeviction - 向redis中存入数据时数据已满显示报错提示
5、内存优化设置
从物理内存中划分多少内存给redis使用这里没有指定则代表将本机的所有物理内存交给redis去使用
560 # maxmemory bytes #maxmemory-policy 定义当内存空间不足时删除已存储数据的方式策略为 noeviction即即使内存使用完了也不删除已存储的数据
591 # maxmemory-policy noeviction #当使用lrulfuttl 策略时需要指定key模板的个数
602 # maxmemory-samples 56、修改redis运行参数修改密码IP地址和端口号
[roottemplate ~]# /etc/init.d/redis_6379 stop #停掉redis的服务
[roottemplate ~]# vim /etc/redis/6379.conf
70 bind 192.168.4.50 #如果想让其他主机访问本机修改监听地址为本机网卡地址
93 port 6350 #修改端口号为6350
501 requirepass 123456 #取消注释修改用户连接redis的密码为123456启动redis的服务
[roottemplate ~]# /etc/init.d/redis_6379 start
查看redis服务的端口号
[roottemplate ~]# ss -ntulp | grep redis七、连接redis服务
方法一登录redis以后输入连接密码
-h 指定要连接的主机-p(小写) 指定连接端口号
[roottemplate ~]# redis-cli -h 192.168.4.50 -p 6350
192.168.4.50:6350 auth 123456 #auth 后跟上连接密码否则无法正常使用
192.168.4.50:6350 ping
192.168.4.50:6350 exit方法二连接redis时输入连接密码 -a 指定连接密码
[roottemplate ~]# redis-cli -h 192.168.4.50 -p 6350 -a 123456
192.168.4.50:6350 ping
192.168.4.50:6350 exit八、停止redis服务
当修改了redis服务的IP地址密码和端口号以后则无法通过脚本来停止redis服务 脚本停止服务针对的是redis服务默认的IP地址密码和端口号
连接上redis, 使用shutdown来停止服务
[roottemplate ~]# redis-cli -h 192.168.4.50 -p 6350 -a 123456 shutdown
[roottemplate ~]# ss -ntulp | grep redis
[roottemplate ~]# /etc/init.d/redis_6379 start #启动服务