第一部分:入门
1.1 Redis简介
Redis(Remote Dictionary Server)是一个高性能的键值存储系统,它是一种开源、基于内存的数据结构服务器。Redis以其出色的性能和灵活的数据结构而受到广泛关注和应用。下面展开描述Redis的定义和特点:
-
高性能:Redis完全基于内存操作,并使用了多种优化策略,因此具有极高的读写速度。它支持每秒数十万次的读写操作,使其成为许多高流量和实时应用的理想选择。
-
数据结构的丰富性:Redis支持多种数据结构,包括字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(sorted set)等。每种数据结构都具有丰富的操作命令,使得开发人员可以灵活地存储和处理各种数据。
-
内建的数据持久化:Redis提供两种持久化机制,即RDB快照和AOF日志。RDB快照将内存中的数据以二进制形式保存到硬盘上,AOF日志记录了对数据库的每个写操作,以便在重启时重新构建数据。
-
多样的应用场景:Redis可以应用于多种场景,例如缓存、会话管理、消息队列、实时分析、排行榜和计数器等。它的高性能、数据结构灵活性以及丰富的功能使其在许多企业和产品中得到广泛应用。
-
分布式支持:Redis提供了Redis Cluster模式,可以将数据分布在多个节点上,实现高可用性和横向扩展。通过数据分片和自动故障转移,Redis Cluster可以处理海量数据和高并发访问。
-
开源和活跃的社区支持:Redis是一个开源项目,拥有庞大的活跃社区。这意味着你可以自由地使用、修改和分发Redis,并获得社区的支持和贡献。
总之,Redis是一个功能强大且性能卓越的键值存储系统,它通过提供多种数据结构和丰富的功能,满足了各种应用场景的需求。无论是构建实时应用、处理大量数据、还是实现分布式架构,Redis都是一个值得关注和学习的工具。
1.2 安装和配置Redis
①.Windows环境安装
下载地址
Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 D 盘,解压后,将文件夹重新命名为 redis。
打开文件夹,内容如下:
打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\redis 运行:
redis-server.exe redis.windows.conf
如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
这时候另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。
切换到 redis 目录下运行:
redis-cli.exe -h 127.0.0.1 -p 6379
设置键值对:
set myKey abc
取出键值对:
get myKey
②.Linux 源码安装
下载地址,下载最新稳定版本。
# wget https://download.redis.io/releases/redis-6.2.6.tar.gz
# tar xzf redis-6.0.8.tar.gz
# cd redis-6.0.8
# make
执行完 make 命令后,redis-6.0.8 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli:
下面启动 redis 服务:
# cd src
# ./redis-server
注意这种方式启动 redis 使用的是默认配置。也可以通过启动参数告诉 redis 使用指定配置文件使用下面命令启动。
# cd src
# ./redis-server ../redis.conf
redis.conf 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
启动 redis 服务进程后,就可以使用测试客户端程序 redis-cli 和 redis 服务交互了。 比如:
# cd src
# ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
1.3 Redis基本命令
Redis是一种基于键值对存储的数据结构服务器,提供了许多命令来操作这些键值对。下面是Redis的一些基本命令:
-
SET key value:将键值对存储到Redis数据库中。如果键已存在,则覆盖现有值。
示例:将键名为“name”的值设置为“Tom”。
SET name Tom
-
GET key:从Redis数据库中检索键的值。
示例:获取键名为“name”的值。
GET name
-
DEL key:从Redis数据库中删除指定键及其对应的值。
示例:删除键名为“name”的键值对。
DEL name
-
KEYS pattern:返回符合给定模式的所有键名。
示例:返回所有以“user:”开头的键名。
KEYS user:*
-
EXISTS key:检查给定键是否存在于Redis数据库中。
示例:检查键名为“name”的键是否存在。
EXISTS name
-
INCR key:将给定键的值加一。
示例:将键名为“counter”的值加一。
INCR counter
-
DECR key:将给定键的值减一。
示例:将键名为“counter”的值减一。
DECR counter
-
EXPIRE key seconds:设置给定键的生存时间(以秒为单位)。
示例:将键名为“name”的键的生存时间设置为60秒。
EXPIRE name 60
-
TTL key:返回给定键的剩余生存时间(以秒为单位)。
示例:返回键名为“name”的键的剩余生存时间。
TTL name
-
FLUSHALL:删除所有键值对。
示例:删除所有键值对。
FLUSHALL
以上是Redis的一些基本命令,它们可以满足大部分基本的数据操作需求。当然,Redis还提供了更多高级命令和操作,比如哈希表、列表、集合、有序集合等数据结构的操作命令,以及事务处理、发布/订阅等高级功能。如果需要更多信息,可以参考Redis官方文档。