Redis入门教程(一)

Redis入门教程(一)

(一)Redis、Jedis、Spring Data Redis

Redis:是一款开源的K-V数据库,它是用C语言编写的,性能优越,遵守BSD协议。主要特点如下:

  1. Redis 支持数据持久化,采用Copy-on-write技术更新数据,可以异步保存到磁盘。
  2. 支持丰富的数据结构,如String、List、Hash、Set、Sorted Set。
  3. 所有操作都是原子性的,支持事务。

Jedis:是Redis官方的一款面向Java的客户端,为Java提供所需接口。

Spring Data Redis:Spring同样对Redis进行了整合,在Spring应用中,我们可以通过一些简单的配置来实现对Redis的访问,它对Redis的底层开发包高度封装,对Redis的操作主要通过RedisTemplate实现。

(二)How to use RedisTemplate

1、pom.xml导入依赖

<!--Redis-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2、配置application.properties

# Redis服务器连接端口
spring.redis.port=8387
# Redis服务器地址
spring.redis.host=139.135.140.45
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1ms
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=5000ms

3、RedisTemplate的基本操作

//用@Autowired注入RedisTemplate
@Autowired
private RedisTemplate redisTemplate;
// 删除单个key和多个key
public void delete(String key){
    redisTemplate.delete(key);
}
public void deleteKey (String ...keys){
    redisTemplate.delete(keys);
}

//设置key失效时间及单位
public void setExpireTime(String key,long time){
	redisTemplate.expire(key,time,TimeUnit.MINUTES);
}
//    根据key获取过期时间
public long getExpire(String key){
    Long expire = redisTemplate.getExpire(key);
    return expire;
}
//    判断key是否存在
public boolean hasKey(String key){
    return redisTemplate.hasKey(key);
}

4、String类型相关操作

1)添加缓存和获取缓存值

//1、通过redisTemplate设置值
redisTemplate.boundValueOps("StringKey").set("StringValue",1, TimeUnit.MINUTES);

//通过redisTemplate获取-值
String str1 = (String)redisTemplate.boundValueOps("StringKey").get();

//2、通过BoundValueOperations设置值
BoundValueOperations stringKey = redisTemplate.boundValueOps("StringKey");
stringKey.set("StringValue",1, TimeUnit.MINUTES);

//通过BoundValueOperations获取值
BoundValueOperations stringKey = redisTemplate.boundValueOps("StringKey");
String str2 = (String) stringKey.get();

//3、通过ValueOperations设置值
ValueOperations ops = redisTemplate.opsForValue();
ops.set("StringKey", "StringVaule");
ops.set("StringValue","StringVaule",1, TimeUnit.MINUTES);

//通过ValueOperations获取值
ValueOperations ops = redisTemplate.opsForValue();
String str3 = (String) ops.get("StringKey");

2)设置过期时间

redisTemplate.boundValueOps("StringKey").expire(1,TimeUnit.MINUTES);
redisTemplate.expire("StringKey",1,TimeUnit.MINUTES);
  1. 顺序递增递减
redisTemplate.boundValueOps("StringKey").increment(3L);
redisTemplate.boundValueOps("StringKey").increment(-3L);

5、Hash类型相关操作

1)添加缓存

//1、通过redisTemplate 设置值
redisTemplate.boundHashOps("HashKey").put("SmallKey","HashValue");

//2、通过BoundHashOperations 设置值
BoundHashOperations hashKey = redisTemplate.boundHashOps("HashKey");
hashKey.put("SmallKey","HashValue");

//3、通过HashOperations 设置值
HashOperations hashOps = redisTemplate.opsForHash();
hashOps.put("HashKey","SmallKey","HashValue");

2)设置过期时间

redisTemplate.boundValueOps("HashKey").expire(1,TimeUnit.MINUTES);
redisTemplate.expire("HashKey",1,TimeUnit.MINUTES);

3)添加Map集合

HashMap<String,String> hashMap = new HashMap<>();
redisTemplate.boundHashOps("HashKey").putAll(hashmap);

4)提取HashKey里所有keys和value

//1、通过redisTemplate获取值
Set keys3 = redisTemplate.boundHashOps("HashKey").keys();
List value3 = redisTemplate.boundHashOps("HashKey").values();

//2、通过BoundHashOperations 获取值
BoundHashOperations hashKey = redisTemplate.boundHashOps("HashKey");
Set keys6 = hashKey.keys();
List value6 = hashKey.values();

//3、通过HashOperations 获取值
HashOperations hashOps = redisTemplate.opsForHash();
Set keys9 = hashOps.keys("HashKey");
List value9 = hashOps.values("HashKey");

5)根据key提取value

//1、通过redisTemplate获取key为SmallKey的value
String value1 = (String)redisTemplate.boundHashOps("HashKey").get("SmallKey");

//2、通过BoundHashOperations 获取值
BoundHashOperations hashKey = redisTemplate.boundHashOps("HashKey");
String value2=(String)hashKey.get("SmallKey");

//3、通过HashOperations 获取值
HashOperations hashOps = redisTemplate.opsForHash();
String value3 = (String)hashOps.get("HashKey","SmallKey")

6)获取所有键值对集合

//1、通过redisTemplate获取
Map entries1 = redisTemplate.boundHashOps("HashKey").entries();

//2、通过BoundHashOperations 获取值
BoundHashOperations hashKey = redisTemplate.boundHashOps("HashKey");
Map entries2 = hashKey.entries();

//3、通过HashOperations 获取值
HashOperations hashOps = redisTemplate.opsForHash();
Map entries3 = hashOps.entries("HashKey");

7)删除

redisTemplate.boundHashOps("HashKey").delete("SmallKey");

redisTemplate.delete("HashKey");

8)判断Hash中是否含有SmallKey

Boolean bool= redisTemplate.boundHashOps("HashKey").hasKey("SmallKey");
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 想要快速入门Redis,可以按照以下步骤进行: 1. 了解Redis的基本概念和特性,例如Redis是一种内存数据存储系统,可以用来缓存数据和作为消息队列等。 2. 下载并安装Redis,可以从Redis官网上下载对应操作系统的Redis安装包进行安装。 3. 掌握Redis的命令行界面,可以使用Redis自带的命令行工具redis-cli来与Redis进行交互。 4. 学习Redis的数据结构,例如字符串、列表、哈希表等,了解每种数据结构的用途和常用操作。 5. 使用编程语言连接Redis并进行操作,Redis支持多种编程语言的客户端,例如Python、Java、C#等。 6. 实践练习,可以使用Redis进行一些常见的场景,例如缓存、排行榜、分布式锁等,来加深对Redis的理解和应用。 以上是快速入门Redis的基本步骤,建议在学习过程中多做练习和实践,以加深对Redis的理解和掌握。 ### 回答2: 要快速入门Redis,需要按照以下步骤进行: 1. 安装并配置Redis:首先在官方网站下载并安装Redis,然后进行基本的配置。在配置文件中,可以设置密码、端口号、数据存储路径等参数。 2. 了解Redis的基本概念:Redis是一种键值存储数据库,它将数据存储在内存中,以提供高速读写访问。了解Redis的基本概念,如键、值、数据类型、过期时间等,是入门的关键。 3. 学习Redis的数据类型:Redis支持多种数据类型,如字符串、哈希、列表、集合和有序集合。掌握每种数据类型的特性、用法和常见操作,可以更有效地使用Redis。 4. 掌握Redis的命令:Redis通过使用命令行工具或客户端库与其进行交互。了解并熟悉常用的Redis命令,如SET、GET、DEL、HSET、HGET、LPUSH、LPOP、SADD、SREM等,是日常使用的基础。 5. 实践Redis的用例:通过实际应用场景来加深对Redis的理解。可以尝试使用Redis来存储会话数据、缓存数据、排行榜数据等。在实践中,不断探索和学习Redis的各种用法。 6. 学习Redis的高级功能:Redis还提供了许多高级功能,如发布订阅、事务、Lua脚本、管道操作等。进一步学习这些高级功能,可以提升Redis的使用能力。 7. 阅读官方文档和参考资料:Redis官方文档和各种博客、教程等都提供了丰富的资料,可以帮助快速入门和深入理解Redis的各个方面。 总之,快速入门Redis需要学习其基本概念和数据类型,并掌握常用的命令和用例。通过实际实践和进一步学习高级功能,可以更好地应用Redis

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值