Javaweb基础知识---redis、Jedis、Maven

redis部分:

  1.概念: redis是一款高性能的NOSQL系列的非关系型数据库

  关系型数据库与NoSql数据库:

    关系型数据库与NoSqL数据库并非对立而是互助的关系,即通常情况下使用关系型数据库,在适合使用NoSL的时候使用NoSqL数据库,让NosQL教据库对关系型数据库的不足进行弥补。
    一般会将数据存储在关系型数据库中,在nosql数据库中备份存储关系型数据库的数据

Redis是用c语言开发的一个开源的高性能键值对(key-value)数据库,官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s,且Redis通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下:
  1)字符串类型string
  2)哈希类型hash

  3)列表类型list

  4)集合类型set
  5)有序集合类型sortedset

   redis的应用场景
    缓存(数据查询、短连接、新闻内容、商品内容等等)

    聊天室的在线好友列表
    任务队列。(秒杀、抢购、 12306等等).

    应用排行榜
    网站访问统计
    数据过期处理〔可以精确到毫)

    分布式集群架构中的session分离

  2.下载安装
    1.官网:https : / / redis.io
    2.中文网:http: f / www .redis.net.cn/

    3.解压直接可以使用:
      * redis.windows.conf :配置文件

      * redis-cli.exe : redis的客户端

      * redis-server.exe : redis服务器端

  3.命令操作
    1. redis的数据结构:
      * redis存储的是:key, value格式的数据,其中key都是字符串,value有5种不同的数据结构
        *value的数据结构:
          1)字符串类型  string
          2)哈希类型hash : map格式
          3)列表类型list : linkedlist格式。支持重复元素

          4)集合类型set:不允许重复元素
          5)有序集合类型sortedset :不允许重复元素,且元素有顺序

    2.字符串类型string
      1,存储:set key value
        127.0.0. 1:6379> set username zhangsan

        OK
      2.获取: get key
        127.6.0.1:6379>get username

        "zhangsan"
      3.删除: del key
        127.8.0.1:6379> del age

        (integer) 1

 

    3,哈希类型hash
      1.存储: hset key field value
        127.0.0.1:6379> hset myhash username lisi

          (integer) 1
        127.0.8.1:6379> hset myhash password 123

          (integer) 1
      2.获取∶
        * hget key field:获取指定的field对应的值
          127.6.0.1:6379> hget myhash username

          "lisi"
        * hegetall key :获取所有的field和value
          127.e.e.1:6379> hgetall myhash

          1) "username"
          2) "lisi"

          3) "password"

          4) "123"

      3.删除: hdel key field
        127.8.6.1:6379> hdel myhash username

          (integer) 1

    4,列表类型 list :简单的字符串列表,按照插入顺序排序。你可以添加一个元秦导列表的头部(左边)或者尾部〈右边)
      1.存储:
        1. lpush key value :从左边存入列表

        2. rpush key value :从右边存入列表

      2.获取︰
        * lrange key start end :范围获取

      3.删除∶
        *lpop key:从列表的最左边移除一个元素,并将元素返回

        * rpop key :从列表的最右边移除一个元素,并将元秦返回

    5.集合类型set :不允许重复元秦
      1、存储: sadd key value
      2.获取: smembers key :获取set集合中所有元素
      3,删除: srem key value:到除set集合中的某个元素
    6.有序集合类型sortedset :不允许重复元素,且元元素有顺序
      1.存储: zadd key score value :
      2.获取: zrange key start end

      3.删除: zrem key value

    7.通用命今
      1. keys * :查询所有的键
      2. type key :获取键对应的value的类型

      3. del key :删除指定的key value

  4.持久化
    1. redis是一个内存数据库,当redis服务器重后,获取电脑重后,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中.

    2. redis持久化机制:
      1.RDB:默认方式,不需要进行配置,默认就使用这种机制
        *在一定的间隔时间中,检测key的变化情况,然后持久化数据

        1,编辑redis.windwos.conf文件
          #after 900 sec ( 15 min) if at least 1 key changed

          save 900 1
          #after 30e sec (5 min) if at least 10 keys changed

          save 300 10
          #after 60 sec if at least 10000 keys changed

          save 60 10000

        2、重新启动redis服务器,并指定配置文件名称

      2. AOF :日志记录的方式,可以记录每一条命今的操作。可以每一次命今操作后,持久化数据
        1,编辑redis.windwos.conf文件
          appendonly no(关闭aof) --> appendonly yes(开启aof)
          #appendfsync always :每一次操作都进行持久化
          appendfsync everysec :每隔一秒进行一次持久化

          #appendfsync no:不进行持久化

 

 Java客户端Jedis:


    Jedis:一款java操作redis数据库的工具.

    *使用步骤:
      1.下载jedis的jar包

      2.使用
        //1.获取连接
        Jedis jedis = new Jedis( "localhost",6379);

        //2.操作
        jedis.set("username" ,"zhangsan" ) ;

        //3.关闭连接
        jedis.close();

  * jedis操作各种redis中的数据结构
    1)字符串类型string
      set
      get
    2)哈希类型hash : map格式
      hset
      hget
    3)列表类型list : linkedlist格式。支持重复元素
      lpush / rpush
      lpop / rpop
    4)集合类型set :不允许重复元秦
      sadd
    5)有序集合类型sortedset : 不允许重复元素,且元素有顺序
      zadd

  *jedis连接池:JedisPool
    使用:
      1.创建edispool连接池对象
      2.调用方法getResource()方法获取Jedis连接

Maven部分:

  maven功能:

    1,依赖管理:maven工程对jar包的管理过程

    2,一键构建:构建是指项目从编译,测试、运行、打包、安装,部署整个过程都交给Maven进行管理,一键构建是指整个构建过程,是使用maven一个命令可以轻松完成整个工作。

  Maven解决的问题:

    1,jar包冲突

    2,将Java文件编译成计算机认识的class文件

    3,快速进行单元测试

    4,将代码,配置文件,资源等快速打包。

  在同一个项目,传统方式和Maven相比,Maven工程构建会小很多

  在传统项目中,jar包在项目中,而Maven开发的项目jar包不在项目中,单独存放在jar包仓库中,是通过jar包坐标到jar包仓库中寻找

  jar包仓库分为本地仓库,中央仓库,远程仓库(私服)。

    本地仓库没有的jar包会在中央仓库下载,没有联网时,只要和远程仓库在同一个局域网时可在远程仓库下载,若是远程仓库没有则远程仓库会在中央仓库下载。也可以将本地仓库的jar包上传至远程仓库。

  对于一个项目,分为核心代码部分,配置文件部分,单元测试代码,测试配置文件。

  maven项目标准目录结构:

    src/main/java目录 核心代码部分

    src/main/resources 配置文件部分

    src/test/java目录 测试代码部分

    src/test/resource 测试配置文件

    src/main/webapp 页面资源,js,css,图片等等 

  maven常用命令:compile(编译),test(测试),package(打包),install(安装),deploy(发布),clean(清除项目编译信息)

    在项目对象模型中包含有项目自身信息,项目运行所依赖的jar包信息,项目运行环境信息,如jdk,tomcat信息

    在依赖管理模型中,包含公司组织的名称,项目名,版本号信息

    项目对象模型和依赖管理模型和项目对象模型共同组成了依赖管理功能

    默认生命周期:compile(编译),test(测试),package(打包),install(安装),deploy(发布)

    由各种插件构成了一键构建功能。

    由一键构建功能和依赖管理功能共同构成了maven概念模型

 

posted @ 2021-01-30 16:47  9_金先生  阅读(204)  评论(0)    收藏  举报