前言
记录本人的 Redis 学习过程,是大致的,以后如果有更深层次的理解再另外写新文章。
Redis 介绍
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、属于NoSQL中的Key-Value数据库。
NoSQL ≠ Not SQL ,而是 Not Only SQL!(NoStudy = Not Only Study)
Redis 有以下特点:
- 免费开源
- 体积小,性能强
- 支持事务,持久化
- 功能丰富
Redis 安装
Redis 不推荐在 Windows 下使用,而且以后工作上的开发,也基本是在 Linux 上,所以在学习 Redis 中都在 Linux 中进行学习,也算是为以后做准备。
Redis 的安装,我一开始是使用 yum 进行安装的(比较方便),但是安装完版本太低,而且安装完东西有点乱,就卸载了,换了一种方法安装。
首先在官网上下载 Redis 最新版本,然后通过 Xftp 上传到服务器上。我是放在 /opt 这个文件夹下,然后进入所在文件夹,使用命令
1 | tar zxvf redis-6.2.1.tar.gz |
进入解压的文件夹,使用 yum 下载 C++
1 | yum -y install gcc gcc-c++ |
在编译之前,先安装 tcl(否则编译会出现问题)
1 | yum install tcl |
进入 Redis 解压后的文件夹,使用指令进行编译
1 | make |
编译结束后可以使用 make install 检测一下,然后开启 redis 服务,使用 ping 测试一下是否开启


在 redis 文件夹下创建一个 etc 文件夹,用于保存 redis 配置文件。
1 | mkdir etc |
然后修改配置文件,使得 redis 可以在后台运行
1 | 使用这行命令,然后将文件中的 daemonize no 改为 yes |
基础命令
先不说其他的,String 类型的命令是必须要熟悉掌握的!
切换数据库
1 | n 表示切换的数据库标号,默认有16个,从0开始 |
查看数据库已使用容量
1 | > dbsize |
查看所有的 key
1 | keys * |
清空当前库
1 | flushdb |
清空全部
1 | > flushall |
查询是否存在对应的key
1 | EXISTS key |
移出对应的key(从n号数据库)
1 | MOVE key n |
设置过期时间(单位秒)
1 | EXPIRE key time |
查看剩余存活时间(单位秒)
1 | -2 表示过期, -1 表示一直存在 |
存放和获取键值对
1 | set key value |
查询 key 的类型
1 | > type key |
往某个键值对的值追加值
1 | appen key "追加值" |
值加一减一操作
1 | incr key |
值加 n 减 n 操作
1 | incrby key n |
截取值的某一部分
1 | st 起始位置 ed 结束位置 |
替换某一部分
1 | 替换的值,不是插入,是一一替换 |
存储的时候带上存活时间
1 | setex key time value |
如果不存在对应的key才存储
1 | setnx key value |
批量设置或者获取值
1 | mset key1 value1 key2 value2 ... |
批量设置配合上面两个一起使用,在末尾带上 ex 或者 nx(原子性操作,如果一个失败则全部失败)
1 | msetnx key1 value1 key2 value2 |
先获取再设置(返回旧值并用新值覆盖旧值)
1 | getset key value |
指令太多了,一个一个记也麻烦,如果想知道某个指令的内容,可以直接去官网查询,后面的记一下注意点
传送门
五大类型的注意点
1 List 是栈,push 操作是往头部加(配合栈,挺好理解的)