Jedis使用说明
Jedis 是 Redis 官方首选的 Java 客户端开发包。使用Jedis提供的Java API对Redis进行操作,是Redis官方推崇的方式;并且,使用Jedis提供的对Redis的支持也最为灵活、全面;不足之处,就是编码复杂度较高。
jedis基本使用
引入jedis的依赖包
1 | <dependency> |
建立一个到Redis的连接,并进行操作
1 |
|
redis连接池的使用
在Jedis中,管理Redis连接的类是JedisPool。
1 |
|
jedis 常用操作
jedis 常用的操作对象有:字符串,列表(list)、集合(set)、有序集合(sorted set)、哈希表(hash)等数据结构
字符串的相关操作
1
2
3
4
5
6
7//键值存储
jedis.set("name", "hello world");
//取值
String name = jedis.get("name");
logger.debug(name);
//删除
jedis.del("name");列表的相关操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14//右边入队
jedis.rpush("userList", "James");
jedis.rpush("userList", "Jonathan");
jedis.rpush("userList", "Steve");
//返回列表范围:从0开始,到最后一个(-1),包含截止
List<String> userList = jedis.lrange("userList", 0, -1);
//设置:位置1处为新值
jedis.lset("userList", 1, "Nick Xu");
//左边出队
jedis.lpop("userList");
//返回长度:
Long size = jedis.llen("userList");
//进行裁剪,从0开始,到最后一个(-1),包含截止
jedis.ltrim("userList",0,0);集合的相关操作
集合和列表不同,集合中的元素是无序的,因此元素也不能重复1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20//集合数据的添加,一次可添加多个
jedis.sadd("code", "java");
jedis.sadd("code", "node", "python", "scala");
jedis.sadd("code", "java", "swift");
//集合的遍历
Set<String> codeSet = jedis.smembers("code");
//元素的删除(一次可删除多个)
jedis.srem("code", "node");
//返回集合的长度
Long size = jedis.scard("code");
//判断集合是否包含某个元素
Boolean isMember = jedis.sismember("code", "java");
//集合的运算
jedis.sadd("code1", "java", "C#", "C");
//集合的交运算
Set<String> sinterSet = jedis.sinter("code", "code1");
//集合的差集
Set<String> sdiffSet = jedis.sdiff("code", "code1");
//集合的并集
Set<String> sunionSet = jedis.sunion("code", "code1");有序集合的相关操作
有序集合在集合的基础上,增加了一个用于排序的参数。1
2
3
4
5
6
7
8//元素的添加,根据第二个参数进行排序
jedis.zadd("userSet", 1, "James");
jedis.zadd("userSet", 3, "John");
jedis.zadd("userSet", 2, "Jonathan");
//元素相同时,更新当前的权重。
jedis.zadd("userSet", 4, "Jonathan");
//找到从0到-1的所有元素。
Set<String> userSet = jedis.zrange("userSet", 1, 2);哈希表的相关操作
1 | //初始化map |
- 其他操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24//对key的模糊查询
Set<String> keys = jedis.keys("co*");
//判断某个key是否存在
Boolean isExists = jedis.exists("code2");
//设置过期时间
jedis.expire("code",60);
//获取剩余存活时间(-1代表永久)
long seconds = jedis.ttl("code");
//去掉key的expire设置:不再有失效时间
jedis.persist("code");
//为指定的 key 设置值及其过期时间。如果key已经存在,将会替换旧的值
jedis.setex("name",100,"hello");
//int类型采用string类型的方式存储
jedis.set("amount", 2 + "");
//递增或递减:incr()/decr()
jedis.incr("amount");
//增加或减少:incrBy()/decrBy()
jedis.incrBy("amount", 5);
//清空当前库
jedis.flushDB();
//清空所有库
jedis.flushAll();