1.是什么
Redis:REmote DIctionaryServer(远程字典服务器)
是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行。
并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。
国外网站:Http://redis.io/
国内网站:Http://redis.io/
Redis 与其他 key - value 缓存产品有以下三个特点
1_Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
2_Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
3_Redis支持数据的备份,即master-slave模式的数据备份
2.能干嘛
1_内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务。
2_取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面。
3_模拟类似于HttpSession这种需要设定过期时间的功。
4_发布、订阅消息系统。
5_定时器、计数器。
3.安装
1_下载获得redis-3.0.4.tar.gz后将它放入我们的Linux目录/opt
2_/opt目录下,解压命令:tar -zxvf redis-3.0.4.tar.gz
3_解压完成后出现文件夹:redis-3.0.4
4_进入目录:cd redis-3.0.4
5_在redis-3.0.4目录下执行make命令
6_如果make完成后继续执行make install
7_查看默认安装目录:usr/local/bin
1)Redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何;服务启动起来后执行
2)Redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
3)Redis-check-dump:修复有问题的dump.rdb文件
4)Redis-cli:客户端,操作入口
5)Redis-sentinel:redis集群使用
6)Redis-server:Redis服务器启动命令
4.启动
1_修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
2_将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myconf
3_启动: redis-server /*/redis.conf
4_联通测试: redis-cli -p portId -a password
5_关停:shutdown
单实例关闭:redis-cli shutdown
多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
*/usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件
6_helloword
> set key01 value01
>get key01
5.Redis启动后杂项基础知识讲解
1_单进程
单进程模型来处理客户端的请求。对读写等事件的响应。
是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率。
Epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,
它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
2_数据库
默认16个数据库,类似数组下表从零开始,初始默认使用零号库。
redis.conf中
databases 16
Select命令切换数据库
>SELECT <dbid>命令在连接上指定数据库id
Dbsize查看当前数据库的key的数量
keys pattern --key 查找
Flushdb:清空当前库
Flushall;通杀全部库
统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
Redis索引都是从零开始
为什么默认端口是6379