返回介绍

7.1 Redis 缓存介绍

发布于 2025-04-26 13:53:50 字数 6971 浏览 0 评论 0 收藏

7.1.1 Redis 概述

Redis 是一个基于内存的单线程高性能 key-value 型数据库,读写性能优异。与 Memcached 缓存相比,Redis 支持丰富的数据类型,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)和 hash(哈希类型)。因此,Redis 在企业中被广泛使用。

7.1.2 Redis 服务器的安装

Redis 项目本身不支持 Windows,但是 Microsoft 开放技术小组开发和维护这个 Windows 端口(针对 Win64),所以我们可以在网络上下载 Redis 的 Windows 版本。具体步骤如下:

步骤 01 打开官方网站(http://redis.io/),单击 Download,如图 7-1 所示。

图 7-1 Redis 下载首页

步骤 02 在弹出的页面中找到 Learn more 链接,并单击进入,如图 7-2 所示。

图 7-2 单击 Learn more 链接

步骤 03 在弹出的页面中选择【releases】选项,如图 7-3 所示。

图 7-3 选择 releases

步骤 04 在弹出的界面中选择 Redis 3.0.504 版本,选择其他版本也可以,单击【Redis-x64-3.0.504.zip】下载 Redis 安装包,如图 7-4 所示。

图 7-4 下载 Redis 3.0.504 安装包

步骤 05 解压下载的安装包【Redis-x64-3.0.504.zip】,双击【redis-server.exe】,Redis 服务就运行起来了,如图 7-5 所示。同时,我们可以看到 Redis 启动成功的界面,如图 7-6 所示。

图 7-5 启动 redis 服务器

图 7-6 redis 启动成功界面

7.1.3 Redis 缓存测试

Redis 安装成功之后,我们可以在安装包里找到 Redis 客户端程序 redis-cli.exe,如图 7-7 所示。双击 redis-cli.exe,打开 Redis 客户端界面,如果 7-8 所示。

图 7-7 启动 redis 客户端

图 7-8 redis 启动成功界面

下面使用 Redis 客户端对 Redis 的几种数据类型做基本的增删改查操作练习,具体代码如下:

字符串类型的增删改查:

     ### 增加一个值 key 为 name,value 为 ay
     127.0.0.1:6379> set name 'ay'
     OK
     ### 查询 name 的值
     127.0.0.1:6379> get name
     "ay"
     ### 更新 name 的值为 al
     127.0.0.1:6379> set name 'al'
     OK
     ### 查询 name 的值
     127.0.0.1:6379> get name
     "al"
     ### 删除 name 的值
     127.0.0.1:6379> del name
     (integer) 1
     ### 查询是否存在 name,0 代表不存在
     127.0.0.1:6379> exists name
     (integer) 0
     127.0.0.1:6379>

List 集合的增删改查:

     ### 添加 key 为 user_list,value 为'ay','al' 的 list 集合
     127.0.0.1:6379> lpush user_list 'ay' 'al'
     (integer) 2
     ### 查询 key 为 user_list 的集合
     127.0.0.1:6379> lrange user_list 0 -1
     1) "al"
     2) "ay"
     ### 往 list 尾部添加 love 元素
     127.0.0.1:6379> rpush user_list 'love'
     (integer) 3
     ### 往 list 头部添加 hope 元素
     127.0.0.1:6379> lpush user_list 'hope'
     (integer) 4
     ### 查询 key 为 user_list 的集合
     127.0.0.1:6379> lrange user_list 0 -1
     1) "hope"
     2) "al"
     3) "ay"
     4) "love"
     ### 更新 index 为 0 的值
     127.0.0.1:6379> lset user_list 0 'wish'
     OK
     ### 查询 key 为 user_list 的集合
     127.0.0.1:6379> lrange user_list 0 -1
     1) "wish"
     2) "al"
     3) "ay"
     4) "love"
     ### 删除 index 为 0 的值
     127.0.0.1:6379> lrem user_list 0 'wish'
     (integer) 1
     ### 查询 key 为 user_list 的集合
     127.0.0.1:6379> lrange user_list 0 -1
     1) "al"
     2) "ay"
     3) "love"
     127.0.0.1:6379>

Set 集合的增删改查:

     ### 添加 key 为 user_set,value 为"ay" "al" "love" 的集合
     127.0.0.1:6379> sadd user_set "ay" "al" "love"
     (integer) 3
     ### 查询 key 为 user_set 的集合
     127.0.0.1:6379> smembers user_set
     1) "al"
     2) "ay"
     3) "love"
     ### 删除 value 为 love,返回 1 表示删除成功,0 表示失败
     127.0.0.1:6379> srem user_set 'love'
     (integer) 1
     ### 查询 set 集合所有值
     127.0.0.1:6379> smembers user_set
     1) "al"
     2) "ay"
     ### 添加 love 元素,set 集合是没有顺序的,所以无法判断添加到哪个位置
     127.0.0.1:6379> sadd user_set 'love'
     (integer) 1
     ### 查询 set 集合所有的值,发现添加到第二个位置
     127.0.0.1:6379> smembers user_set
     1) "al"
     2) "love"
     3) "ay"
     ### 添加 love 元素,set 集合已经存在,返回 0 代表添加不成功,但是不会报错
     127.0.0.1:6379> sadd user_set 'love'
     (integer) 0

Hash 集合的增删改查:

     ### 清除数据库
     127.0.0.1:6379> flushdb
     OK
     ### 创建 hash,key 为 user_hset,字段为 user1,值为 ay
     127.0.0.1:6379> hset user_hset "user1" "ay"
     (integer) 1
     ### 往 key 为 user_hset 的哈希集合添加字段为 user2,值为 al
     127.0.0.1:6379> hset user_hset "user2" "al"
     (integer) 1
     ### 查询 user_hset 字段长度
     127.0.0.1:6379> hlen user_hset
     (integer) 2
     ### 查询 user_hset 所有字段
     127.0.0.1:6379> hkeys user_hset
     1) "user1"
     2) "user2"
     ### 查询 user_hset 所有值
     127.0.0.1:6379> hvals user_hset
     1) "ay"
     2) "al"
     ### 查询字段 user1 的值
     127.0.0.1:6379> hget user_hset "user1"
     "ay"
     ### 获取 key 为 user_hset 的哈希集合的所有字段和值
     127.0.0.1:6379> hgetall user_hset
     1) "user1"
     2) "ay"
     3) "user2"
     4) "al"
     ### 更新字段 user1 的值为 new_ay
     127.0.0.1:6379> hset user_hset "user1" "new_ay"
     (integer) 0
     ### 更新字段 user2 的值为 new_al
     127.0.0.1:6379> hset user_hset "user2" "new_al"
     (integer) 0
     ### 获取 key 为 user_hset 的哈希集合的所有字段和值
     127.0.0.1:6379> hgetall user_hset
     1) "user1"
     2) "new_ay"
     3) "user2"
     4) "new_al"
     ### 删除字段 user1 和值
     127.0.0.1:6379> hdel user_hset user1
     (integer) 1
     ### 获取 key 为 user_hset 的哈希集合的所有字段和值
     127.0.0.1:6379> hgetall user_hset
     1) "user2"
     2) "new_al"
     127.0.0.1:6379>

SortedSet 集合的增删改查:

     ### 清除数据库
     127.0.0.1:6379> flushdb
     OK
     ### 为 SortedSet 集合添加 ay 元素,分数为 1
     127.0.0.1:6379> zadd user_zset 1 "ay"
     (integer) 1
     ### 为 SortedSet 集合添加 al 元素,分数为 2
     127.0.0.1:6379> zadd user_zset 2 "al"
     (integer) 1
     ### 为 SortedSet 集合添加 love 元素,分数为 3
     127.0.0.1:6379> zadd user_zset 3 "love"
     (integer) 1
     ### 按照分数由小到大查询 user_zset 集合的元素
     127.0.0.1:6379> zrange user_zset 0 -1
     1) "ay"
     2) "al"
     3) "love"
     ### 按照分数由大到小查询 user_zset 集合的元素
     127.0.0.1:6379> zrevrange user_zset 0 -1
     1) "love"
     2) "al"
     3) "ay"
     ### 查询元素 ay 的分数值
     127.0.0.1:6379> zscore user_zset "ay"
     "1"
     ### 查询元素 love 的分数值
     127.0.0.1:6379> zscore user_zset "love"
     "3"

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。