面试官说我离高薪 offer 只差一个Redis入门,他是认真的(2)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 面试官说我离高薪 offer 只差一个Redis入门,他是认真的

04、实操 Redis


好了好了,我估计很多小伙伴们已经整装待发,准备实操一把了。这就来。


Redis 的解压目录下有一个名叫 redis-cli.exe 的文件,这是 Redis 自带的一个客户端工具,可以用来连接之前我们启动好的 Redis 服务。双击启动它。


image.png


这个客户端还是非常智能的,当键入命令的时候,会跳出对应的提示


image.png


当按下空格跟进关键字的时候,对应位置上的提示会自动消失。



以下是完整的键值对测试命令,小伙伴们可以按照格式动手实操一把。


> set name cmower
OK
> get name
"cmower"
> exists name
(integer) 1
> del name
(integer) 1
> get name
(nil)



1)set 命令用来存储一个键值对,在本例中,name 为 key,cmower 为 值。


2)get 命令用来获取一个键值对。


3)exists 命令用来测试一个键值对是否存在,(integer) 1 表示存在,(integer) 0 表示不存在。


4)del 命令用来删除一个键值对,(integer) 1 表示执行成功,(integer) 0 表示执行失败。


5)当键值对删除后,再通过 get 命令获取时,结果就为 (nil) 。


可能有小伙伴会好奇,nil 是什么意思?它是 Objective-C、Swift、Ruby、Lua 等编程语言中的一个关键字,更详细的解释可以看一下《Programming in Lua 程序设计第二版》:


nil 是一种类型,它只有一个值 nil,它的主要功能是用于区别其他任何值,就像之前所说的,一个全局变量在第一次赋值前的默认值就是 nil,将 nil 赋予一个全局变量等同于删除它,Lua 将 nil 用于表示一种“无效值(non-value)”的情况,即没有任何有效值的情况。

想了解 Redis 命令的具体使用方法,可以参考以下链接:


http://redisdoc.com/index.html


是 Redis Command Reference 和 Redis Documentation 的中文翻译版,良心吧?


05、在 Java 中使用 Redis


有些小伙伴可能会问,“二哥,我是一名 Java 程序员,我该如何在 Java 中使用 Redis 呢?”这个问题问得好,这就来,这就来。


第一步,在项目中添加 Jedis(Java 和 Redis 的混拼) 依赖:


<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.2.0</version>
</dependency>


第二步,新建 UserInfo(用户信息)类:


public class UserInfo {
    private String name;
    private int age;
    public UserInfo(String name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return "UserInfo{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    // getter / setter
}


 


第三步,在项目中添加 Gson(用于序列化和反序列化用户信息) 依赖:


<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
    <scope>compile</scope>
</dependency>
第四步,新建测试类 RedisTest:
public class RedisTest {
    private static final String REDIS_KEY = "user";
    public static void main(String[] args) {
        Jedis jedis = new Jedis("localhost", 6379);
        Gson gson = new Gson();
        UserInfo userInfo = new UserInfo("沉默王二", 18);
        jedis.set(REDIS_KEY, gson.toJson(userInfo));
        UserInfo getUserInfoFromRedis = gson.fromJson(jedis.get(REDIS_KEY),UserInfo.class);
        System.out.println("get:" + getUserInfoFromRedis);
        System.out.println("exists:" + jedis.exists(REDIS_KEY));
        System.out.println("del:" + jedis.del(REDIS_KEY));
        System.out.println("get:" + jedis.get(REDIS_KEY));
    }
}


1)REDIS_KEY 常量为存储用户信息到 Redis 的 key。


2)在 Jedis 的帮助下,Java 连接 Redis 服务变得非常简单,只需要一行代码:


Jedis jedis = new Jedis("localhost", 6379);

1

参数分别是主机名,端口号。


存储键值对用 set() 方法,获取键值对用 get() 方法,判断键值对是否存在用 exists() 方法,删除键值对用 del() 方法。


3)Gson 是谷歌提供的一个开源库,可以将 Java 对象序列化为 JSON 字符串,同样可以将 JSON 字符串反序列化(解析)为匹配的 Java 对象。


使用起来也非常简单,toJson() 方法将对象转成 JSON 字符串,fromJson() 方法将 JSON 字符串反序列化对象。


好了,来看一下程序的输出结果:


get:UserInfo{name='沉默王二', age=18}

exists:true

del:1

get:null


完全符合我们的预期,perfect!




06、鸣谢


好了,我亲爱的小伙伴们,以上就是本文的全部内容了,是不是看完后很想实操一把 Redis,赶快行动吧!如果你在学习的过程中遇到了问题,欢迎随时和我交流,虽然我也是个菜鸟,但我有热情啊。


另外,如果你想写入门级别的文章,这篇就是最好的范例。


感谢阅读


我在上大专的时候就学了 Java,但由于基础差,学历低的原因在工作中吃了不少亏。没办法,只能后天弥补。输出倒逼输入,于是我就开启了自己的逆袭之路,不断地学习 Java 核心知识,并将所有心得都写成了文章,发布在博客平台上,没想到,这种坚持不懈的努力成就了一个更好的自己。


如果你也不甘平庸,不想被学历限制自我,那就请和我一起打怪进阶吧!


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
5天前
|
NoSQL 关系型数据库 MySQL
redis 入门01
redis 入门01
8 0
|
11天前
|
缓存 NoSQL Java
【Redis系列笔记】Redis入门
本文介绍了Redis常用命令,以及SpringBoot集成Spring Data Redis和Spring Cache。Spring Data Redis 提供了对 Redis 的操作方法,而 Spring Cache 则提供了基于注解的缓存功能,可以方便地将方法的返回值缓存到 Redis 中,以提高性能和减少对数据源的访问次数。这样的集成可以帮助开发者更便捷地利用 Redis 来管理应用程序的数据和缓存。
87 4
|
18天前
|
存储 缓存 NoSQL
Redis入门到通关之Redis内存淘汰(内存过期)策略
Redis入门到通关之Redis内存淘汰(内存过期)策略
32 3
|
18天前
|
存储 NoSQL Linux
Redis入门到通关之多路复用详解
Redis入门到通关之多路复用详解
20 1
|
18天前
|
存储 NoSQL Linux
Redis入门到通关之Redis5种网络模型详解
Redis入门到通关之Redis5种网络模型详解
32 1
|
18天前
|
NoSQL Ubuntu 关系型数据库
Redis入门到通关之Redis网络模型-用户空间和内核态空间
Redis入门到通关之Redis网络模型-用户空间和内核态空间
22 1
|
18天前
|
存储 NoSQL 算法
Redis入门到通关之Redis数据结构-Hash篇
Redis入门到通关之Redis数据结构-Hash篇
22 1
|
18天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-Set篇
Redis入门到通关之Redis数据结构-Set篇
20 1
|
18天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-ZSet篇
Redis入门到通关之Redis数据结构-ZSet篇
22 1
|
18天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-List篇
Redis入门到通关之Redis数据结构-List篇
33 1