Redis笔记那些事儿,入门到实操一点点摸索分享
- 问答
- 2025-12-28 12:53:20
- 3
基于个人学习Redis的实践笔记和经验总结)
我记得刚开始学Redis的时候,总觉得这玩意儿名字挺酷,但一听“内存数据库”、“键值存储”这些词就有点发怵,感觉是特别高大上、特别复杂的东西,后来硬着头皮摸索了一阵子,才发现其实它的核心思想挺直接的,就是用一种简单快速的方式来存东西、取东西,今天我就把我自己一点点记下来的笔记和踩过的坑,用大白话分享一下。
第一印象:Redis是个超级快的“大Map”
你可以先把Redis想象成一个放在内存里的、超级强大的“大字典”或者“Map”,咱们编程的时候不是经常用Map嘛,就是一个键(key)对应一个值(value),Redis干的事儿基本就是这个,只不过这个“Map”不在你程序内部,而是作为一个独立的服务运行在服务器上,你的程序可以通过网络去访问它,因为它把所有数据都放在内存里操作,所以速度飞快,读写的速度都是微秒级别的,比去硬盘上读写的数据库(比如MySQL)快太多了。
那数据都放内存,服务器一关机或者重启不就全没了吗?这个问题我一开始也特别担心,后来知道Redis是有持久化机制的,就是它会定期或者通过某种策略,把内存里的数据 snapshot(快照)一份存到硬盘上,或者把所有写操作命令记录到一个日志文件里,这样即使重启,也能从硬盘上把数据恢复回来,我刚开始用的就是默认的RDB快照方式,感觉对于学习和小项目来说完全够用了。
上手实操:从安装和几个基本命令开始
我的实操是从安装开始的,我是在我本地电脑(Windows系统)上搞的,当时图省事,直接用了微软开源的那个Redis版本,下载下来解压,双击一个叫redis-server.exe的文件,服务就跑起来了,看到一个带着Redis logo的窗口,里面显示着端口号6379,心里还挺有成就感的。
光有服务端不行啊,还得有个客户端去连接它、给它下命令,Redis自带一个命令行客户端,就是同一个文件夹里的redis-cli.exe,双击打开,就是一个黑乎乎的窗口,提示符是0.0.1:6379>,这意味着已经连上本地的Redis服务了。

接下来就是试试那几个最核心的命令,我管它们叫“增删改查”四天王:
- SET: 就是往里面存东西,比如我输入
SET mykey "hello redis",然后回车,Redis会回一个“OK”,这就表示成功了,这就相当于在这个“大Map”里,放了一个键叫“mykey”,它对应的值是“hello redis”。 - GET: 就是把存的东西取出来,接着上面,我输入
GET mykey,回车,屏幕上就显示"hello redis",看,这就取出来了。 - DEL: 就是删除一个键值对,输入
DEL mykey,回车,如果返回个数字1,就表示删除了1个key,你再输入GET mykey,就会返回一个(nil),意思是空,找不到了。 - KEYS: 这个命令可以用来查看当前数据库里有哪些key,比如输入
KEYS *,就会列出所有的key,刚开始学的时候用这个挺方便的,但后来看资料说在生产环境要小心用,因为如果key特别多的话,这个命令可能会让服务器卡一下。
就这么几个命令,反复敲了几遍,我就感觉好像摸到点门道了,Redis最基本的操作就是这么直接。
发现新大陆:原来value不光是字符串
我一开始以为Redis的value只能存字符串,就像我刚用SET命令存的那样,但继续学下去才发现,这才是Redis厉害的地方,它支持好几种数据结构,每种都有专门的用处。

- List(列表): 就像咱们编程里的链表或者数组,可以用
LPUSH从左边塞进去一个值,用RPUSH从右边塞,然后用LPOP从左边弹出来,RPOP从右边弹出来,我当时就用这个模拟了一个简单的消息队列,或者一个最新消息列表,感觉特别实用。 - Set(集合): 最大的特点就是里面的元素不能重复,可以用
SADD往里面加成员,用SMEMBERS查看所有成员,我想到的典型用法就是给一篇文章存标签,同一个标签存一次就够了。 - Hash(哈希): 这个特别适合存一个对象,比如要存一个用户信息,有name,有age,你不用把整个对象转成JSON字符串存进去,而是可以
HSET user:1 name "张三" age 25,这样,user:1这个key对应的就是一个小的字段映射表,你可以单独获取name(HGET user:1 name)或者单独修改age,很灵活。 - Sorted Set(有序集合): 这是我觉得最强大也最有意思的一个,它也是个集合,不重复,但每个成员都有一个分数(score),Redis会根据这个分数来给成员排序,这简直就是为排行榜量身定做的!比如做游戏积分榜,玩家ID是成员,积分是分数,一下命令,排名前N的玩家就出来了,非常方便。
了解了这些数据结构,我才明白为什么Redis的应用场景那么广,它不只是个简单的键值存储。
踩坑小记:关于key的设计和过期时间
在实际试着用Redis做点小东西的时候,我也踩过坑,最大的教训就是key不能瞎起,比如一开始我可能随便存个user,那第二个用户进来不就覆盖第一个了吗?后来学乖了,要用有意义的、唯一的标识来组成key,user:12345, article:1001:title 这种形式,清晰又不会冲突。
还有一个特别有用的功能叫过期时间,比如短信验证码,存到Redis里后,总不能一直留着吧?这时候就可以用 EXPIRE 命令给key设置一个生存时间,比如300秒,时间一到,Redis就自动把这个key删了,这个功能在做缓存或者临时数据存储时必不可少。
总结一下
我的Redis入门过程,就是从把它当成一个“网络版的大Map”开始,先通过几个基本命令找到感觉,然后再去探索它提供的各种数据结构,看看每种结构能解决什么实际问题,最后在尝试用的过程中,注意一下key的设计和如何管理数据的生命周期,这么一点点下来,虽然离精通还远,但至少敢用它来做一些简单的功能了,比如缓存热点数据、存个会话信息、做个简单的排行榜什么的,我觉得学习任何新技术,这种从最简单的概念入手,然后动手试试,遇到问题再去找答案的方式,还是挺管用的。
本文由瞿欣合于2025-12-28发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/70039.html
