什么是Redis
基于键值对的内存数据库。
Redis 的优势
-
基于内存,所以数据读写快。
所有数据都存放在内存中
底层使用 C 语言实现
使用单线程架构,避免产生竞争问题
源代码集性能和优雅与一身
-
持久化
- 可以将内存的数据利用快照和日志的形式保存在硬盘上。
-
提供更多功能
- 提供键过期、发布订阅、事务、流水线、Lua 脚本等附加功能。
-
支持多种数据结构,应用广泛。
- String
- hash
- list
- set
- zset(有序集合)
- Bitmaps
- HyperLogLog
- GEO(地理信息定位)
-
开源。
- 源码量相较比较少,容易深入学习。
-
客户端语言多
- 比如 Java 、PHP、Python、C、C++、Node等。
主从复制。
-
高可用和分布式。
- 保证了 Redis 节点的故障发现和故障自动转移。
Redis 使用场景
-
缓存
Redis 提供了健值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略。
-
排行榜系统
Redis 提供了列表和有序集合数据结构,合理地使用这些数据结构可以很方便构建各种排行榜系统。
-
计数器应用
Redis 天然支持计数器功能而且计数的性能也非常好。
-
社交网络
由于社交网络访问量通常比较大,而且传统的关系型数据不适合保存这种类型的数据。而 Redis 提供的数据结构可以相对比较容易地实现这些功能。
-
消息队列系统
Redis 提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队列比还不够强大,但是对于一般的消息队列功能基本可以满足。
Redis 不可以做什么
比如大规模的数据,再比如一些不需要经常访问的冷数据。
用好 Redis 的建议
-
切勿当做黑盒使用,开发与运维同样重要。
要在了解其原理之后,妥善使用。
-
阅读源码
阅读源码可以加深对系统的理解,提升自己的编码水平,甚至可以客制化。
使用 Redis
启动服务:
redis-server
之后会显示一些日志信息:
image
使用命令行工具:
redis-cli -h 127.0.0.1 -p 6379
image
停止 Redis 服务
redis-cli shutdown
关闭前建议使用
save
参数生成持久化文件:
redis-cli shutdown [nosave]|[save]
查看版本:
redis-cli -v
Redis 借鉴了 Linux 操作系统对于版本号的命名规则: 版本号第二位如果是奇数,则为非稳定版本(例如2.7 , 3.1),如果是偶数,则为稳定版本(例如2.8 , 3.2)。
查看状态:
redis-cli status