redis scala编程之创建连接

首先需要导入依赖

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

单线程连接

private def jedisTest(): Unit = {
    val jedis = new Jedis("mypc01", 6379)
    val str: String = jedis.set("user4", "libai")
    println(str) //ok
    println(jedis.get("user2"))
    println(jedis.get("user4"))
  }

线程池连接

def jedisPoolTest(): Unit = {
	//创建线程池
    val pool = new JedisPool("mypc01", 6379)
    //获取连接对象
    val jedis: Jedis = pool.getResource
    //设置一系列的键值对
    val str: String = jedis.mset("hobby", "code", "movie", "lion")
    println(str) //OK
    //获取指定key的值,可以是多个key
    val strings: util.List[String] = jedis.mget("hobby", "movie")
    println(strings) //[code, lion]
    pool.close()
  }

如果对线程池的线程数有限制的话,比如空闲线程数之类的,也是可以设置的

 def jedisPoolTest(): Unit = {
    val config = new GenericObjectPoolConfig()
    config.setMaxTotal(15)
    //最大空闲连接数
    config.setMaxIdle(10)
    //最小空闲连接数
    config.setMinIdle(5)
    //创建线程池
    val pool = new JedisPool(config, "mypc01", 6379)
    //获取连接对象
    val jedis1: Jedis = pool.getResource
   //mest设置kv对
    val str: String = jedis1.mset("hobby", "code", "movie", "lion")
    println(str) //OK
    //mget依据k获取v,返回值为List
    val strings: util.List[String] = jedis1.mget("hobby", "movie")
    println(strings) //[code, lion]
    pool.close()
  }

上述例子用到的方法解析

mset

public String mset(String... keysvalues)

将各个键设置为各个值。 MSET将用新值替换旧值,而MSETNX将根本不执行任何操作,即使仅存在一个键也是如此。
由于这种语义,可以使用MSETNX来设置代表唯一逻辑对象的不同字段的不同键,以确保所有字段都设置或根本不设置。
MSET和MSETNX都是原子操作。 这意味着,例如,如果key A和B被修改,则另一个与Redis通信的客户端可以一次看到对A和B的更改,或者根本看不到任何更改。

mget

public java.util.List<String> mget(String... keys)

获取所有指定键的值。 如果一个或多个键不存在或不是String类型,则返回“ nil”值而不是指定键的值,但是操作永远不会失败。
时间复杂度:每个键为O(1)

总结

创建连接一般用连接池,之后就可以进行一系列操作了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值