scala中使用redis
redis命令参考网址:http://doc.redisfans.com/index.html
创建redis集群:
import java.util.Properties import java.io.FileInputStream import java.util import redis.clients.jedis.{HostAndPort, JedisCluster} import org.apache.commons.pool2.impl.GenericObjectPoolConfig object RedisUtil { private val propertiesPath = "/home/..." //配置文件本地地址 private val properties = new Properties() properties.load(new FileInputStream(propertiesPath)) private val jedisClusterNodes = new util.HashSet[HostAndPort]() private val IP = properties.getProperty("redisIP") private val redis_passwd = properties.getProperty("redis_passwd") private val ports = properties.getProperty("RedisPorts").split(",") for (i <- 0 until ports.size){ jedisClusterNodes.add(new HostAndPort(IP,ports(i).toInt)) } var cluster:JedisCluster = _ def createJedisCluster(connecitonTimeout:Int = 60000, soTimeout:Int = 60000, maxAttempts:Int = 5):JedisCluster = { if (cluster == null){ cluster = new JedisCluster(jedisClusterNodes, connecitonTimeout, soTimeout,maxAttempts,redis_passwd,new GenericObjectPoolConfig()) cluster } cluster } }
key键操作:
//删除key cluster.del(key) //判断key是否存在 cluster.exists(key)
list列表操作:
#key的value添加元素 cluster.lpush(key,value) //列表左添加 cluster.rpush(key,value) //列表右添加 #取出指定范围内的元素-闭区间,包括stop cluster.lrange(key,start,stop) //start从0开始,-1表示列表最后一个元素,-2表示列表倒数第二个元素 //时间复杂度: O(S+N), S 为偏移量 start , N 为指定区间内元素的数量。 #取出全部元素 cluster.lrange(key,0,-1) //返回一个列表
#将列表 key 下标为 index 的元素的值设置为 value
cluster.lset(key,index,value)