RDBMS:(关系型数据库管理系统)
--按照预先设置的组织结构,将数据存储在物理介质上
--数据之间可以做关联操作
主流软件有:
MySQL
MariaDB
Oracle
SQL Server
NoSQL(NoSQL = Not Only SQL)
--泛指非关系型数据库
--不需要预先定义数据存储结构
--每条记录可以有不同的数据类型和字段个数
NoSQL主流软件
--Memcached
--MongoDB
--CouchDB
--Neo4j
--FlockDB
部署Redis
***Redis
--Remote Dictionary Server(远程字典服务器)
--是一款高性能的(Key/Values)分布式内存数据库
--支持数据持久化(定期把内存里数据存储到硬盘)
--支持多种数据类型stringlisthash
--支持master-slave模式数据备份
--中文网站www.redis.cn
软件安装
rpm -q gcc || yum -y install gcc 解包 tar -xf redis-...tar.gz cd redis make && make install
初始化配置
./utils/install_server.sh
端口 | 6379 |
主配置文件 | /etc/log/redis_6379.log |
日志文件 | /var/log/redis/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 |
查看端口 | netstat -nutlp | grep :6379 |
连接服务
]# redis-cli //进入redis >ping >set name lisi //存储数据 >get name //取数据 >exit //断开连接
常用命令
set key名 key值 | 存储单个值 |
mset key名 key名.... | 存储多个值 |
get key名 | 获取单个值 |
mget key名 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 | 停止服务 |
配置文件解析
常用配置:
port | 端口 |
bind 127.0.0.1 | ip地址 |
daemonize yes | 守护进程方向运行 |
databases 16 | 数据库个数 |
logfile /var/log/redis_6379.log | 日志文件 |
maxclients 10000 | 并发连接数量 |
/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 | 移动最近过期的key |
noeviction | 不删除 |
内存管理
优化设置
maxmemory | 最大内存 |
maxmemory-policy | 定义使用策略 |
maxmemory-samples | 选取key模板的个数(针对lru于ttl策略) |