NoSQL之redis~简单部署redis+普通优化

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策略)
原文地址:https://www.cnblogs.com/ahaocloud/p/14716192.html