1、redis介绍(redis安装在磁盘,redis数据存储在内存)
reids是一种基于键值对(key-value)数据库,其中value可以为 string、hash、list、set、zset等多种数据结构(用了这么久好多都没用到过),可以满足很多应用场景,还提供了键过期,发布订阅,事务,流水线等附加功能。
流水线:redis的流水线功能允许客户端一次将多个命令请求发送给服务器(比如Pipeline命令),并将被执行的多个命令请求的结果在一个命令回复中全部返回给客户端,使用这个功能可以有效的减少客户端在执行多个命令是需要与服务器进行通信的次数(带宽比较小的服务器福利,在服务器带宽越小的服务器上优势越明显)。
2、特征:
1)速度快,数据放在内存中,官方给出的读写性能是10w/s,与机器性能也有关,官方也添加了一些redis的测试性能的测试命令,后面再讲。
a、数据放内存中式速度快的主要原因
b、C语言实现,与操作系统距离更近
c、使用了单线程架构,预防多线程可能产生的竞争问题
2)键值对的数据结构服务器
3)简单稳定:单线程
4)持久化:发生断电或机器故障,数据可能会丢失,持久化到硬盘
5)主从复制:实现多个相同数据的redis副本
6)高可用和分布式:哨兵实现高可用,保证redis节点故障发现和自动转移(我个人觉得哨兵没有那么方便,还是分布式好,分布式里面有一个选举策略,挺有趣的,后面再说,公司有矿的情况下使用分布式集群,可惜我们公司连铁矿都没有,哎~~~)
7)客户端语言多:Java、php,python、c、c++等
3、使用场景:
1)缓存:合理使用缓存加快数据访问速度,降低后端数据源压力
2)排行榜:按照热度排名,按照发布时间排名,只要用到列表和有序集合
3)计数器应用:视频网站播放数,网站浏览器,使用reids计数
4)社交网络:赞、踩、粉丝、下拉刷新
5)消息队列:发布与订阅(建议不要用Redis进行发布订阅,使用MQ效果更好)
4、正确安装与启动
1)liunx上安装,windows也能装,但我们以liunx环境为主
2)配置、启动、操作、关闭
可执行文件 | 作用 |
redis-server | 启动redis |
redis-cli | redis命令行客户端 |
redis-benchmark | 基准测试工具 |
redis-check-aof | AOF持久化文件检测和修复工具 |
redis-check-dump | RDB持久化文件检测和修复工具 |
redis-sentinel | 启动哨兵 |
3)redis-server启动:
a)默认配置:reids-server,日志输出版本信息,端口6379
b)运行启动:redis-server 6380 不建议使用
c)配置文件启动:redis-server ../redis.conf ,灵活,生产环境使用这种方式启动
4)redis-cli 启动
a)交互式:redis-cli -h {host} -p {port}连接到redis服务,没有h默认链接127.0.0.1
b)命令式:redis-cli -h 127.0.0.1 -p 6379 get hello //取key=hello的value
c)停止redis服务:redis-cli shutdown
注意:(1) 关闭时:断开连接,持久化文件生成,相对安全
(2) 还可以用kill 关闭,次方式不会做持久化,还回造成缓冲区非法关闭,可能会造成AOF(持久化)和数据丢失。
5、重大版本:
1、版本号第二位为奇数,非稳定版本(2.7、2.9、3.1)
2、第二位为偶数,为稳定版本(2.6、2.8、3.0)
3、当前奇数版本是下一个稳定版本的开发版本,如2.9是3.0的开发版本
(同志们、选版本的时候悠着点哦)