Redis作为现代数据库的代表,以其高性能、数据结构丰富、支持多种数据类型而备受青睐。千峰笔记提供系统学习路径,从基础安装到高级应用,一步步助你精通Redis。学习路径:1.基础入门:安装Redis,了解五大数据类型(String、Hash、List、Set、ZSet)。2.进阶应用:持久化机制(RDB、AOF)、主从复制、哨兵模式。3.高阶实战:集群搭建、Lua脚本、模块扩展(如RedisJSON、RedisGraph)。4.项目实践:缓存优化、Session存储、排行榜实现。跟随千峰笔记,快速上手Redis,成为数据库高手!
Redis基础知识
Redis是一个开源的、支持网络的、内存存储、在键空间中存储任意数据类型(字符串、哈希、列表、集合、有序集、位图、HyperLogLog)的数据结构存储系统。它支持多种数据结构类型作为键的值,Redis支持字符串、列表、集合、有序集、哈希、位图等数据类型。它支持数据持久化,可以将内存中的数据保存到磁盘上,重启时可以再次加载执行。它支持数据复制,可以将Redis服务的数据复制到其他的Redis服务上。它支持发布/订阅消息模式,可以实现消息队列。它支持Lua脚本,可以将服务器端逻辑封装到脚本中执行。它支持事务,可以保证一系列操作原子性执行。它支持Lua脚本,可以将服务器端逻辑封装到脚本中执行。它支持事务,可以保证一系列操作原子性执行。
Redis安装与配置
在Linux系统下安装Redis:wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make cd src make install。Windows用户可使用Redis官方提供的Windows版本或通过Docker安装。配置文件redis.conf中关键参数:bind 127.0.0.1、port 6379、requirepass password、maxmemory 2gb、maxmemory-policy allkeys-lru。启动Redis:redis-server redis.conf。
Redis数据类型详解
String类型:最基本类型,可存储字符串、整数、浮点数等,如SET key value、GET key。Hash类型:存储对象,如HMSET user:1 name tom age 20。List类型:双端链表,支持LPUSH、RPUSH、LPOP、RPOP。Set类型:无序集合,支持SADD、SMEMBERS、SINTER。ZSet类型:有序集合,支持ZADD、ZRANGE。
Redis持久化机制
RDB(Redis DataBase):定时将内存数据快照保存到RDB文件,优点:文件紧凑、恢复快;缺点:可能丢失最后一次快照后的数据。配置save 900 1。AOF(Append Only File):记录每次写操作日志,重启时重放日志恢复数据,优点:数据更安全;缺点:文件较大。配置appendonly yes。混合模式:Redis 4.0后支持RDB+AOF。
Redis高可用方案
主从复制:slaveof主IP端口,实现读写分离。哨兵模式:sentinel monitor mymaster IP port quorum,自动故障转移。Redis Cluster:分片集群,支持16384个槽位,自动数据分片和高可用。
Redis实战应用
缓存:SETEX key seconds value,实现TTL过期。分布式锁:SETNX lock_key value、EXPIRE。排行榜:ZADD board score member。Session存储:HMSET session:id data...。消息队列:LPUSH queue msg、BRPOP queue 0。
常见问题FAQ
Q: Redis适合存储什么数据?
A: Redis适合高频读写、小数据量场景,如缓存、会话、排行榜,不适合海量持久化数据。
Q: 如何优化Redis内存使用?
A: 设置maxmemory和eviction策略,如allkeys-lru;使用高效数据结构;定期清理过期键。
Q: Redis单线程如何高性能?
A: 基于内存操作、无磁盘IO、单线程避免上下文切换、多路复用处理连接。
Q: Redis和Memcached区别?
A: Redis支持丰富数据结构、持久化、集群;Memcached仅支持string、无持久化。