大数据中Redis的介绍及用法案例

Redis介绍

介绍:一个高性能的kv数据库,支持数据持久化,可保存在磁盘上面,还提供list,set,hash多种类型结构的存储,支持数据备份支持; 优点:读写速度快;支持丰富的数据类型strings lists hashs;所有操作都是原子性,要么成功要么失败;多个操作支持事务; 和其他kv不同:运行在内存但是可以持久化磁盘,在内存运行速度快操作简单,可以做一些复杂事情,磁盘以追加格式产生。

首先安装window版或者Linux版

代码案列:

先导入maven

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

以下idea案列

 package redis

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
import redis.clients.jedis.{Jedis, JedisPool}

/*
        *项目名:  spark
        *文件名:  RedisDemo
        *创建者:  Mr.Justin
        *创建时间: 2019/4/7 19:38
        *描述:    TODO1
        */
object RedisDemo {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[*]").setAppName(this.getClass.getSimpleName)
    val sc: SparkContext = new SparkContext(conf)

    val rdd: RDD[String] = sc.textFile("d:/desktop/1.txt")
    val words: RDD[(String, Int)] = rdd.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _)
    val filed: RDD[(String, Int)] = words.filter(_._1.length > 0)

    filed.foreachPartition(partition => {
      val jedis: Jedis = GetJedis.getJedis(1)

      partition.foreach(tp =>
        jedis.hset("wordcount", tp._1, tp._2.toString)
      )
      jedis.close()
    }
    )
    sc.stop()
  }
}

object GetJedis {
  private val pool: JedisPool = new JedisPool()

  def getJedis(x: Int = 0) = {
    val resource: Jedis = pool.getResource
    resource.select(x)
    resource
  }
}

下载一个RedisDesktopManager 大数据中Redis的介绍及用法案例
连接服务器即可看到:
大数据中Redis的介绍及用法案例
OK!this is Redis!
Thanks for watching!
大数据中Redis的介绍及用法案例