链接redis
1.导入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
2.建立连接(测试类中,另外写一个测试方法)
Jedis jedis = new Jedis("localhost",6379);
操作数据结构
String
1.设置键和值
jedis.set("username","lxyk");
1.取值
System.out.println(jedis.get("username"));
3.关闭
jedis.close();
hash
1.连接
Jedis jedis = new Jedis();//如果使用空参构造,默认值就是localhost 6379
2.存储
jedis.hset("aaaa","name","fbb");
jedis.hset("aaaa","age","23");
jedis.hset("aaaa","gender","male");
3.获取hash
String hget = jedis.hget("aaaa", "name");
System.out.println(hget);
全部获取
Map<String, String> map = jedis.hgetAll("aaaa"); //全部获取
for (String key : map.keySet()) {
String value = map.get(key);
System.out.println(key + ":"+value);
}
4.关闭
jedis.close();
list
@Test
public void test4(){
Jedis jedis = new Jedis();
//存储
jedis.lpush("myList","a","b","c"); //左边存 lpush方法中value的位置是可变参数
jedis.rpush("myList","a","b","c"); //右边存
//获取
List<String> myList = jedis.lrange("myList", 0, -1);
System.out.println("myList = " + myList);
//list弹出
System.out.println(jedis.lpop("myList")); //左弹出
System.out.println(jedis.rpop("myList")); //右弹出
//获取
List<String> myList2 = jedis.lrange("myList", 0, -1);
System.out.println("myList2 = " + myList2);
jedis.close();
}
lpush源码
@Override
public Long lpush(final String key, final String... strings) {
checkIsInMultiOrPipeline();
client.lpush(key, strings);
return client.getIntegerReply();
}
set
//set
@Test
public void test5(){
Jedis jedis = new Jedis();
//set存储
jedis.sadd("myset","java","php","C++","Go");
//set获取
Set<String> myset = jedis.smembers("myset");
System.out.println("myset = " + myset);
jedis.close();
}
jedis连接池
1.创建一个配置对象
JedisPoolConfig config = new JedisPoolConfig(); //Jedis 池配置
config.setMaxTotal(50); //最大连接数
config.setMaxIdle(10); //最大空闲连接
2.创建连接池对象
JedisPool jedisPool = new JedisPool(config,"localhost",6379);
jedispool源码
public JedisPool(final GenericObjectPoolConfig<Jedis> poolConfig, final String host,
final int port) {
this(poolConfig, host, port, Protocol.DEFAULT_TIMEOUT);
}
把池子配置进去,本机和端口
3.得到Jedis获取连接
Jedis resource = jedisPool.getResource(); //获取资源
设置数据
resource.set("hehe","fbbb");
获取
System.out.println(resource.get("hehe"));
4.关闭连接
resource.close();
工具类操作
新建一个工具包utils
创建一个工具类
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
//工具类
public class JedisPoolUtils {
//1.来个静态成员变量
private static JedisPool jedisPool;
static {
//读取配置文件
InputStream is = JedisPoolUtils.class.getClassLoader()
.getResourceAsStream("jedis.properties"); //需要写一个配置文件
//创建
Properties pro = new Properties();
try {
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//获取数据,设置到JedisPoolConfig中
JedisPoolConfig config = new JedisPoolConfig(); //Jedis 池配置
config.setMaxIdle(Integer.parseInt(pro.getProperty("maxTotal")));
config