总是想找时间系统详细的去学习下redis终于行动了。。。。
Redis:Remote Dictionary Server (远程字典服务器)官网:https://redis.io/
google翻译下redis介绍吧。
------------------------------------------------------------------------redis官网介绍start-----------------------------------------
Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如 字符串,散列,列表,集合,具有范围查询的排序集,位图,超文本和具有半径查询的地理空间索引。Redis内置复制,Lua脚本,LRU驱逐,事务处理和不同级别的磁盘持久性,
您可以 对这些类型运行原子操作,例如附加到字符串 ; 在哈希中增加值 ; 将元素推送到列表中 ; 计算集交集, 联合和差异 ; 或者在排序集中获得最高排名的成员。
为了实现其出色的性能,Redis使用 内存中的数据集。根据您的用例,您可以通过将数据集 一次性转储到磁盘,或通过将每个命令附加到日志来持久化。如果您只需要功能丰富的网络内存缓存,则可以选择禁用持久性。
Redis还支持简单到设置的主从异步复制,非常快速的非阻塞第一次同步,自动重新连接,在网络分割上部分重新同步。
其他功能包括:
------------------------------------------------------------------------redis官网介绍end-----------------------------------------
Redis 与其他 key - value 缓存产品有以下三个特点
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
Redis支持数据的备份,即master-slave模式的数据备份
功能:
内存存储和持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
取最新N个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
模拟类似于HttpSession这种需要设定过期时间的功能
发布、订阅消息系统
定时器、计数器
安装:
下载获得redis-3.0.4.tar.gz后将它放入我们的Linux目录/opt
/opt目录下,解压命令:tar -zxvf redis-3.0.4.tar.gz
解压完成后出现文件夹:redis-3.0.4
进入目录:cd redis-3.0.4
在redis-3.0.4目录下执行make命令
如果make完成后继续执行make install
查看默认安装目录:usr/local/bin
目录介绍:
redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
redis-check-dump:修复有问题的dump.rdb文件
redis-cli:客户端,操作入口
redis-sentinel:redis集群使用
redis-server:Redis服务器启动命令
启动:
修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
将默认的redis.conf拷贝到自己定义好的一个路径下,比如/myconf
/usr/local/bin目录下运行redis-server,(redis-server /myredis/redis.conf)运行拷贝出存放了自定义conf文件目录下的redis.conf文件
关闭:
单实例关闭:redis-cli shutdown
多实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
单进程:
单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数的包装来做到的。Redis的实际处理速度完全依靠主进程的执行效率
epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。
默认16个数据库,类似数组下表从零开始,初始默认使用零号库
select命令切换数据库
dbsize查看当前数据库的key的数量
flushdb:清空当前库Flushall;通杀全部库
统一密码管理,16个库都是同样密码,要么都OK要么一个也连接不上
Redis索引都是从零开始
默认端口是6379