RDBMS
- 关系数据库管理系统
-Relational Database Management System
-按照预先设置的组织结构,将数据存储在物理介质上
-数据之间可以做关联操作
RDBMS软件 - 主流的RDBMS软件
-Mysql
-MariaDB
-Oracle
-DB2
-SQL-Server
NoSQL
- NoSQL(NoSQL=Not Only SQL)
-意思是’不仅仅是SQL’
-反之非关系型数据库
-不需要预先定义数据存储结构
-每条记录可以有不同的数据类型和字段个数
NoSQl软件 - 主流软件
-Memcached
-Redis
-MongoDB
-CouchDB
-Neo4j
-FlockDB
Redis介绍
- Redis
-Remot Dictionary Server(远程字典服务器)
-是一款高性能的(Key/Values)分布式内存数据库
-支持数据持久化(定期把内存里数据存储到硬盘)
-支持多种数据类型string、list、hash…
-支持master-salve模式数据备份
安装软件
-源码编译安装
#rpm-q gcc || yum -y install gcc
#tar -zxvf redis-4.0.8.tar.gz
#cd redis-4.0.8
#make
#make install
初始配置
- 配置服务运行参数
]#./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
管理服务
]#/etc/init.d/redis_6379 stop //停止服务
]#/etc/init.d/redis_6379 start //启动服务
]#ps -C redis-server //查看进程
]# ss -ntulp | grep :6379 //查看端口
- 访问redis服务
-redis-cli 默认连接本机的redis服务
[root@host50 redis-4.0.8]# redis-cli
127.0.0.1:6379>ping
PONG
127.0.0.1:6379>set name bob //存数据
OK
127.0.0.1:6379>get name //取数据
"bob"
127.0.0.1:6379>exit //断开连接
常用命令
-set key 名 key值 //存储1个key值
-mset key名列表 //存储多个key 值
-get key 名 //获取key值
-mget //获取多个key值
-select 数据库编号0-15 //切换库
-keys * //显示所有key 名
-keys a? //显示指定key名
-exists key名 //测试key名是否存在
-ttl key名 //查看key生存时间
-type key 名 //查看key类型
-move key名 库编号 //移动key到指定库
-expire key名 数字 //设置key有效时间
-del key名 //删除指定的key
-flushall //删除内存里所有key
-flushdb //删除所在库的所有key
-save //保存所有key到硬盘
-shutdown //停止服务
配置文件解析
配置分类
- 具体如下
-NETWORK 网络
-GENERAL 常规
-SNAPSHOTTING 快照
-REPLICATION 复制
-SECURITY 安全
-CLIENTS 客户端
- MEMORY MANAGEMENT 内存管理
常用配置
-port 6379 //端口
-bind 127.0.0.1 //IP地址
-daemonize yes //守护进程方式运行
-databases 16 //数据库个数
-logfile /var/log/redis_6379.log //日志文件
-maxclients 10000 //并发连接数量
-dir /var/lib/redis/6379 //数据库目录
内存管理
- 内存清楚策略
-volatile-lru //最近最少使用(针对设置了TTL的key)
-allkeys-lru //删除最少使用的key(针对所有的key)
-allkeys-lfu //从所有key中清楚使用频率最少的key
-volatile-lfu //从所有配置了过期时间的key中清除使用频率最少的key
-volatile-random //在设置了TTL的key里随机移除
-allkeys-random //随机移除key
-volatile-ttl(minor TTL) //移除最近过期的key
-noeviction //不删除,写满时报错
内存管理
优化设置
-maxmemory //最大内存
-maxmemory-policy //定义使用策略
-maxmemory-samples //选项key模板的个数(针对lru和ttl策略)
连接密码
- 设置密码、ip地址、端口
]# vim /etc/redis/6379.conf
requirepass 123456
bind 192.168.4.50
port 6350
:wq
]# redis-cli -h 192.168.4.50 -p 6350 //连接服务
192.168.4.50:6350>ping
(error) NOAUTH Authentication required
192.168.4.50:6350>auth 123456 //输入密码
OK
192.168.4.50:6350>ping
PONG
]# redis-cli -h 192.168.4.50 -p 6350 -a 123456 //连接时加密码
]# redis-cli -h 192.168.4.50 -p 6350 -a 123456 shutdown //停止服务