windows版redis入门+下载安装+springdata整合redis

Redis入门

今天我们来学习一下redis,想要学习redis,首先要了解一个东西:NoSQL

1.什么是NoSQL?

NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库

2.为什么使用NoSQL?

官方文档用了一大堆文字来描述,但在我看来,其实主要就是用来解决以下几个点问题的:

  • 高并发读写
  • 海量数据的高效率存储和访问
  • 高可扩展性和高可用性

3.主流NoSQL产品

NoSQL数据库的四大分类如下:

  • 键值(Key-Value)存储数据库
    相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
    典型应用: 内容缓存,主要用于处理大量数据的高访问负载。
    数据模型: 一系列键值对
    优势: 快速查询
    劣势: 存储的数据缺少结构化
  • 列存储数据库
    相关产品:Cassandra, HBase, Riak
    典型应用:分布式的文件系统
    数据模型:以列簇式存储,将同一列数据存在一起
    优势:查找速度快,可扩展性强,更容易进行分布式扩展
    劣势:功能相对局限
  • 文档型数据库
    相关产品:CouchDB、MongoDB
    典型应用:Web应用(与Key-Value类似,Value是结构化的)
    数据模型: 一系列键值对
    优势:数据结构要求不严格
    劣势: 查询性能不高,而且缺乏统一的查询语法
  • 图形(Graph)数据库
    相关数据库:Neo4J、InfoGrid、Infinite Graph
    典型应用:社交网络
    数据模型:图结构
    优势:利用图结构相关算法。
    劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

4.什么是Redis?

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。

  • 官方提供测试数据:50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s (数据仅供参考)。

  • Redis提供5种数据类型,解决不同场景下存储问题。

    1、 字符串类型

    2、 散列类型

    3、 列表类型

    4、 集合类型

    5、 有序集合类型。

5.redis下载与安装

redis建议安装在linux服务器上运行测试,本次主要学习windows下操作。

5.1 目录结构和使用

  • 目录结构
    在这里插入图片描述

5.2 启动redis服务:运行redis-server.exe,并指定配置文件名称

redis-server.exe redis.windows.conf

在这里插入图片描述

  • 如果有网络访问问题,允许
    在这里插入图片描述
  • 若出现问题:system error caught
    在这里插入图片描述
    修改redis.windows.conf文件,最后追加如下内容(用于设置内存大小,参考 maxheap = 1.5 * maxmemory):

maxmemory 120MB
maxheap 180MB

5.3 连接redis服务:双击redis-cli.exe接口

  • 使用“ping"命令进行测试,如果返回结果为”PONG“,表示连接成功
    在这里插入图片描述
  • 问题:由于目标计算机积极拒绝,无法连接。(redis没有启动,启动就行)
    在这里插入图片描述

6.注册成windows服务

  • 将redis服务注册window服务。

redis-server.exe --service-install

在这里插入图片描述

  • 可选项:设置redis服务的启动方式
    在这里插入图片描述

7.安装图形化工具

7.1 安装

  • 步骤一:环境界面
    在这里插入图片描述
  • 步骤二:许可
    在这里插入图片描述
  • 步骤三:选择安装路径
    在这里插入图片描述
  • 步骤四:安装成功
    在这里插入图片描述
  • 步骤五:完成并运行
    在这里插入图片描述

7.2 使用

在这里插入图片描述

  • 连接redis
    在这里插入图片描述

7.3 redis几个简单的常见命令

  • 类似mysql时的sql语句
常见命令描述
ping用于测试redis服务是否连接成功,返回“PONG”表示成功
set设置字符串数据,格式:set 键 值
get获得字符串数据,格式:get 键
del删除数据,格式:del 键

在这里插入图片描述

8. Jedis使用

Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。

  • 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis等,其中官方推荐使用Jedis和Redisson。下面我们就简单学习下Jedis。
  • Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis.

8.1 搭建环境

  • 步骤一:构建测试项目
  • 步骤二:修改pom.xml文件,添加依赖 redis、test
<dependencies>
        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>
        <!--Jedis-->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.3</version>
        </dependency>
        <!--test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>
        <!--web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.1.4.RELEASE</version>
        </dependency>
    </dependencies>
  • 步骤三:编写启动类
@SpringBootApplication
public class TestApplication {
    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class,args);
    }
}

8.2 Jedis入门

public class TestJedis {
    public static void main(String[] args) {
        //1 构建jedis对象
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //2 存放数据
        jedis.set("name","张三");
        //3 获得数据
        String name = jedis.get("czxy");
        //4 控制台展示
        System.out.println(name);
        //5 释放资源
        jedis.close();
    }
}

9. Spring boot 整合 Redis

9.1 StringRedisTemplate 常用方法

  • RedisTemplate 对redis中5种类型进行操作工具类。
  • 开发中使用字符串较多,StringRedisTemplate 专门进行字符串处理模板类。
常见方法描述
opsForValue()操作字符串
delete(key)根据key删除记录
  • 通过opsForValue()获得字符串操作对象,可以进行具体操作
方法描述
ops.set(key,value)向redis中插入数据。因为这个没有设置过期时间所以是永久存储的。
ops.set(key,value,time,timeUnit);向redis中插入数据。第三个参数是一个long型的时间。最后一个参数是时间的单位
ops.get(key)ops.get(key)

9.2 整合redis

  • 修改application.yml 文件,配置redis
#redis配置
spring:
  redis:
    database:   0
    host: 127.0.0.1
    port: 6379

9.3 整合Junit

@RunWith(SpringRunner.class)        
@SpringBootTest(classes = TestApplication.class)
public class TestTemplate {
    @Test
    public void testDemo(){
        System.out.println("....");
    }
}

9.4 测试

@RunWith(SpringRunner.class)                    //spring整合Junit
@SpringBootTest(classes=TestApplication.class)  //spring boot 整合Junit
public class TestTemplate {

    @Resource
    private StringRedisTemplate stringRedisTemplate;
    /**
     *添加数据
     */
    @Test
    public void demo01(){
        stringRedisTemplate.opsForValue().set("java001","niubi");
    }
    /**
     *添加数据,设置有效时间5分钟
     */
    @Test
    public void demo02(){
        stringRedisTemplate.opsForValue().set("java002","牛", 5 ,TimeUnit.MINUTES);
    }
    /**
     *获得数据
     */
    @Test
    public void demo03(){
        String str = stringRedisTemplate.opsForValue().get("java001");
        System.out.println(str);
    }
    /**
     *删除数据
     */
    @Test
    public void demo04(){
        stringRedisTemplate.delete("java001");
    }
}

10. 附

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值