Redis安装及简单使用

Redis

1. Redis介绍

  1. NoSQL的引言

    NoSQL(Not Only SQL),意为不仅仅是SQL,泛指非关系型的数据库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。

    RDBMS: 关系型数据库

    NoSQL: 泛指非关系型数据库

  2. 为什么是NoSQL

    随着互联网网站的兴起,传统的关系数据库在应付动态网站,特别是超大规模和高并发的纯动态网站已经显得力不从心,暴露了很多难以克服的问题。如 商城网站中对商品数据频繁查询、对热搜商品的排行统计、订单超时、以及微信朋友圈(音频,视频)存储等相关使用传统的关系型数据建库实现就显得非常复杂,虽然能实现相应功能但是在性能上却不是那么乐观,nosql这个技术门类的出现,更好地解决了这些问题,他告诉了世界不仅仅是sql.

  3. NoSQL的四大分类

    1. 键值(Key-Value)存储数据库
    2. 列存储数据库
    3. 文档型数据库
    4. 图形(Graph)数据库
  4. NoSQL应用场景

    • 数据模型比较简单
    • 需要灵活性更强的IT系统
    • 对数据库性能要求较高
    • 不需要高度的数据一致性(NoSQL 产品对于事物支持都不是特别良好)
  5. 什么是Redis

    Redis 开源 遵循BSD 基于内存数据存储 都被用于作为 数据库 缓存 消息中间件

    Redis 数据内存中 内存:读写快 断电消失 机制:持久化机制 内存数据 定期写入到磁盘中

    • 总结:Redis是一个内存型的数据库 缓存 消息中间件
  6. Redis特点

    • Redis是一个高性能key/value内存型数据库
    • Redis支持丰富的数据类型
    • Redis支持持久化
    • Redis单进程、单线程 线程安全 Redis分布式锁

2. Redis安装

  1. Redis安装

    1. 下载redis安装包并上传到linux

    2. 解压redis安装包

      tar -zxvf redis-6.2.3.tar.gz
      

      安装前要确定有 gcc 的依赖

      yum install -y gcc
      
    3. 安装redis

      # 进入目录
      cd redis-6.2.3/
      # 编译 安装
      make MALLOC=libc
      make install PREFIX=/usr/redis
      
    4. 进入/usr/redis/bin目录启动redis服务

      cd /usr/redis/bin
      ./redis-server
      
    5. 克隆一个session,开启redis客户端

      cd /usr/redis/bin/
      ./redis-cli -h localhost -p 6379         //如果在一台机器上  ./redis-cli  命令即可
      
    6. redis启动服务的细节

      1. 注意直接使用./redis-server方式启动使用的是redis-server这个shell脚本中默认配置

      2. 如何在启动redis时指定配置文件启动

        注意:默认在redis安装完成之后再安装目录没有任何配置文件,需要在源码目录中复制redis.conf配置文件到安装目录

        # a. 进入源码目录
        cp redis.conf /usr/redis
        # b. 进入/usr/redis安装目录查看复制配文件
        cd /usr/redis
        # c. 进入 bin 目录加载配置文件启动
        ./redis-server ../redis.conf        # 可以使用相对路径
        

        注意 如果需要其它机器可以访问则需要修改配置文件

        # bind 后是允许访问的ip,可以将其注释掉
        # 127.0.0.1   //代表只允许本机访问
        
        # 关闭 protected mode  这也是Redis3.2以上版本加入的新特性,开启保护模式的redis只允许本机登录
        protected-mode no
        
      3. 修改redis默认端口号

        vim redis.conf    
        可以修改里面的 port
        
      4. 加载自己配置的配置文件启动 redis

        ./redis-server ../redis.conf
        
    7. redis密码

      1. Redis 配置 : redis的配置文件位于 Redis安装目录下,文件名为 redis.conf (Windows 中名为 redis.windows.conf)
      2. 初始化redis密码:配置文件中有个参数:requirepass 这个就是配置redis访问密码的参数;
        例如: requirepass 123 (注意:改密码需要重启redis才能生效)
      3. 不重启redis设置密码:
        命令: config set requirepass 123
        查询密码命令:
        获得权限: auth 123
        config get requirepass
      4. 登录有密码的redis:
        登陆的时候输入密码: redis -cli -p 6379 -a 123
        或者先登录后验证:
        redis -cli -p 6379
        auth 123
  2. Redis数据库相关指令

    1. redis中库的概念

      库:database用来存放数据一个基本单元 一个库可以存放key-value键值对 redis 中每一个库都有一个唯一名称|编号 从0开始默认库的个数:16个库 库的编号: 0-15 默认使用是0号库;

      切换库命令: select dbid(库编号)

    select  <dbid>
    
    1. redis中清除库的指令
    # 清空当前库
    FLUSHDB
    # 清空所有库
    FLUSHALL
    
  3. 操作key相关的指令

    # 删除key
    DEL key
    
    # 检查给定key是否存在。存在返回1,否则返回0
    EXISITS key
    
    # 为给定key设置生存时间,当key过期时,它会被自动删除
    EXPIRE key seconds
    
    # 将当前数据库的key移动到给定的数据库db中
    MOVE key db
    
    # 以秒为单位,返回给定key的剩余生存时间(TTL, time to live)
    # key 不存在时返回-2;当 key 存在但没有设置剩余生存时间时返回-1
    TTL key
    
    # 将key 改名为 newkey。当key 和 newkey 相同,或者key不存在时返回一个错误
    RENAME key newkey
    
    # 返回 key 所存储的值的类型
    TYPE key
    # 返回值  none(不存在) string(字符串) list(列表) set(集合) zset(有序集) hash(哈希表)
    
  4. 数据类型

    1. Sring类型
    2. list类型
    3. set类型
    4. zset类型
    5. hash类型

3.Redis与springboot整合

  1. 通过 Jedis 在Java程序中使用 Redis

    引入Jedis依赖

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

    使用

    public class TestRedis {
    
        public static void main(String[] args) {
            // 创建jedis客户端对象
            Jedis jedis = new Jedis("192.168.209.1",6379);
            // 选择使用一个库   默认使用0号库
            jedis.select(0);
            // 获取redis中所有key信息
            Set<String> keys = jedis.keys("*");
            keys.forEach(key-> System.out.println("key = " + key));
            // 释放资源
            jedis.close();
        }
    }
    
  2. SpringBoot整合Redis

    Spring Boot Data Redis 中提供了 RedisTemplate 和 StringRedisTemplate,其中StringRedisTemplate是RedisTemplate的子类,两个方法基本一致,不同之处主要体现在操作的数据类型不同,RedisTemplate中的两个泛型都是Object,意味着存储的key和value都可以是一个对象,二StringRedisTemplate的两个泛型都是String,意味着StringRedisTemplate的key和value都只能是字符串。

    • 注意:使用RedisTemplate默认是将对象序列化到Redis中,所以放入的对象必须实现对象序列化接口。
    1. 引入依赖

              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-data-redis</artifactId>
              </dependency>
      
    2. 使用

      @Autowired
      StringRedisTemplate stringRedisTemplate;    //  字符串对象
      
      @Autowired
      RedisTemplate redisTemplate;   //  Object对象  需要实现序列化
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值