Redis入门学习一基本概念

本文介绍了Redis,一种流行的内存数据结构存储系统,用作缓存和数据库。涵盖了Redis的安装、基本命令、五种数据类型以及在构建缓存系统中的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当谈到缓存和键值存储时,Redis(Remote Dictionary Server)无疑是一个非常受欢迎的解决方案。它被广泛用于构建高性能、可扩展和可靠的应用程序。在本博客中,我们将带您入门Redis,并介绍一些基本概念和常用命令。

1.Redis是什么?

Redis是一个开源的内存数据结构存储系统,可以用作缓存、数据库和消息队列代理。它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合。Redis是单线程的,使用异步I/O和内存映射文件来提供快速的读写性能。

2.安装和运行Redis

首先,确保您的Linux系统上已经安装了Redis。您可以通过以下命令来检查是否已安装:

redis-cli --version

如果Redis未安装,请按照Redis官方文档提供的说明进行安装。

在安装完成后,您可以通过以下命令启动Redis服务器:

redis-server

3.Redis的基本命令

Redis提供了丰富的命令集,以便于存储、检索和处理数据。以下是一些常见的Redis命令:

  • SET key value: 设置给定键的值。

  • GET key: 获取给定键的值。

  • DEL key: 删除给定键的值。

  • EXISTS key: 检查给定键是否存在。

  • INCR key: 将给定键的值递增1。

  • DECR key: 将给定键的值递减1。

  • HSET key field value: 设置给定哈希表中字段的值。

  • HGET key field: 获取给定哈希表中字段的值。

  • LPUSH key value: 将值推入给定列表的左侧。

  • RPUSH key value: 将值推入给定列表的右侧。

  • LPOP key: 从给定列表的左侧弹出一个元素。

  • RPOP key: 从给定列表的右侧弹出一个元素。

这些命令只是Redis提供的众多命令的一小部分。您可以查阅Redis官方文档来获得更多命令的详细信息。

4.Redis的五种基本数据类型

redis基本数据类型
redis一共分为5中基本数据类型:String,Hash,List,Set,ZSet

第一种String
String类型是包含很多种类型的特殊类型,并且是二进制安全的。比如序列化的对象进行储存,比如一张图片进行二进制储存,比如一个简单的字符串数值等等。

set和get方法:
设置值set name realValue
取值 get name
说明:set设置name的时候,如果name重复,设置的值会进行覆盖。

第二种Hash类型
Hash类型是String类型的filed和value的映射表,或者说是一个String的结合,他特别适合存储对象。相比较而言把一个对象存储在Hash类型中要比直接存储在String中更加节省空间。并方便存储整个对象,Hash类型也是我们工作中最常用的一种。

形如:hset user name ming 意思是一个Hash类型叫做user,这个user的属性name的值是ming。

使用hget来获取值 hget user name 就能获取到这个对象中的name属性的值。

第三种List
List类型是一个链表结构的集合,其主要功能有push,pop获取元素等等。更详细的说List类型是一个双端链表结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素。List的设计非常简单精巧,既可以作为栈又可以作为队列。满足绝大多数要求。

lpush方法:从头部添加元素,(栈)先进后出。
设置值 lpush list hello
说明:创建一个name为list的栈,并且入栈一个hello

rpush方法:从尾部添加元素(队列)先进先出
设置值lpush list2 hello
说明:创建一个name为list2的队列,并且入栈一个hello

第四种Set类型
set集合是String类型的无序集合,set是通过hashtable实现的,对集合我们可以取交集,并集,差集。

sadd方法:向名称为key的set中添加元素。
小结:set集合不允许重复元素,smembers查看set中的所有元素。
常用方法
srem方法 删除set集合元素。srem name 值
spop方法 随机返回删除的key
sdiff返回两个集合不同元素,哪个集合在前面就以哪个集合为标准。
sdiffstore 将返回的不同元素存储在另一个集合里面。 sdiffstore set3 set1 set2 。吧1和2的不同元素存储在3中
sinter 返回两个集合的交集。sinter set1 set2 返回set1中和set2中的交集元素。
sinterstore 将返回的交集存储在一个新的集合中
smove方法:从一个set集合中移动元素到另一个set集合中 smove set2 set1 bbb 将set2中的bbb移动到set1中。

scard方法:查看集合中元素的个数。
第五种ZSet类型
Zset是在set的基础上做了一个有序的调整。

zadd方法:向有序集合中添加一个元素,如果该元素存在,就更新顺序。
小结:在重复插入的时候会根据顺序属性更新。

语法:zadd set1 1 aaa 其中的1代表序号。 就是排序的序号。aaa代表集合的值,set1代表集合的名字。

zrange 方法,查看集合中的值 zrange set1 0 -1 withscores
说明:withscores代表把序号也查询出来,不想显示序号可以不加。

zrem方法 删除集合中的元素。
redis高级命令
keys * 返回所有的name

5.使用场景

使用Redis构建缓存系统

Redis最常用的场景之一是构建缓存系统。通过将经常访问的数据存储在Redis中,可以提高应用程序的性能和响应速度。

以下是一个简单的示例,展示如何使用Redis作为缓存:

import redis.clients.jedis.Jedis;

public class RedisCache {
    private Jedis jedis;

    public RedisCache() {
        jedis = new Jedis("localhost");
    }

    public void set(String key, String value) {
        jedis.set(key, value);
    }

    public String get(String key) {
        return jedis.get(key);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值