Redis基础用法

目录

一.初识Redis

1.1SQL 和 NoSql的区别

1.2 认识Redis特征:

二.启动连接+使用

三.Redis命令

1.String

2.Hash

3.List

4.Set

5.SortedSet

三.Redis的java客户端

1.Jedis

基本用法

2.SpringDataRedis

一.初识Redis

1.1SQL 和 NoSql的区别

1.2 认识Redis
特征:

  • 键值(key-value)型,value支持多种不同数据结构,功能丰富
  • 单线程,每个命令具备原子性
  • 低延迟,速度快(基于内存、IO多路复用、良好的编码)。
  • 支持数据持久化(定期将内存搬运到磁盘)
  • 支持主从集群、分片集群(数据拆分)
  • 支持多语言客户端

二.启动连接+使用

1.先在安装好的redis文件夹下打开

然后就可以直接打开 cmd 命令行窗口 , 在命令行中执行

redis-cli

进入 Redis 客户端

即可开始使用

2. 进入计算机服务中(右键计算机-->管理-->服务和应用程序-->服务),再在右侧找到Redis名称的服务,查看启动情况。如未启动,则手动启动之。

然后即可如方法一操作

注意:用RDM图形化工具也可以  只要先启动了redis  用RDM和cmd窗口均可命令行操作 

三.Redis命令

1.String

 

 

 如果Value是一个Java对象,例如一个User对象,则可以将对象序列化为JSON字符串后存储:

 

 

2.Hash

本身Redis就是一个key-value的结构,而hash的value还是一个key-value的结构

支持对单个值进行修改

image-20221109155750826

image-20221109160250164

image-20221109160409469

3.List

image-20221109162502511

image-20221109163700818

从左侧推

 lpush users 1 2 3 

image-20221109163035886

从右侧推

image-20221109163259830

从左侧右侧弹出

lpop users 1
rpop users 1

image-20221109163552543

image-20221109163638903

阻塞弹出 blpop/brpop key second

blpop user1 100

4.Set

image-20221109164228655

Set的常见命令有:

  • SADD key member … :向set中添加一个或多个元素
  • SREM key member … : 移除set中的指定元素
  • SCARD key: 返回set中元素的个数
  • SISMEMBER key member:判断一个元素是否存在于set中
  • SMEMBERS:获取set中的所有元素
  • SINTER key1 key2 … :求key1与key2的交集

 sadd s1 a b c

image-20221109164657277

 

sadd zs lisi wnagwu zhaoliu
sadd ls wangwu mazi ergou

scard zs
sinter zs ls
adiff zs ls
sunion zs ls
ismember zs lisi
ismember ls zhangsan
srem zs lisi

smembers zs
smembers ls

5.SortedSet

image-20221109165841177

每个元素都带上分数,所以才能实现排序

image-20221109170020319

image-20221109170635790

zadd stus 85 jack 89 Lucy 82 Rose 95 Tom 78 Jerry 92 Amy 76 Miles 
zrem stus Tom 
zscore stus Amy
zrank stus Rose //升序 zrevrank stus Rose//降序
zcount stus 0 80
zincrby stus 2 Amy
zrange stus 0 2 //升序 zrevrange stus 0 2 //降序
zrangebyscore stus 0 80

三.Redis的java客户端

1.Jedis

在Redis官网中提供了各种语言的客户端,地址:https://redis.io/docs/clients/

基本用法

(1) 导入依赖

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

(2) 建立连接

public class JedisTest {
    private Jedis jedis;

    @BeforeEach
    void setUp(){
        //1.建立连接
        jedis = new Jedis("192.168.200.130",6379);
        //2.设置密码
        jedis.auth("1234");
        //3.选择库
        jedis.select(0);
    }

    @Test
    void testString(){
        String result = jedis.set("name", "小明");
        System.out.println("result= " + result);

        String name = jedis.get("name");
        System.out.println("name= "+name);
    }

    @AfterEach
    void tearDown(){
        if(jedis!=null){
            jedis.close();
        }
    }


}

连接不上/报错 得使用设置密码

config set requirepass 12349

image-20221109184644235

@Test
void testHash(){
    jedis.hset("user:1","name","jack");
    jedis.hset("user:1","age","21");

    Map<String, String> map = jedis.hgetAll("user:1");
    System.out.println(map);
}

2.SpringDataRedis


SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis,官网地址:https://spring.io/projects/spring-data-redis

  • 提供了对不同Redis客户端的整合(Lettuce和Jedis)
  • 提供了RedisTemplate统一API来操作Redis
  • 支持Redis的发布订阅模型
  • 支持Redis哨兵和Redis集群
  • 支持基于Lettuce的响应式编程(Lettuce之前实在es那里有)
  • 支持基于JDK.JSON.字符串.Spring对象的数据序列化及反序列化
  • 支持基于Redis的JDKCollection实现

SpringDataRedis中提供了RedisTemplate工具类,其中封装了各种对Redis的操作。并且将不同数据类型的操作API封装到了不同的类型中:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值