五种数据结构类型带你走进Redis

前言:

关于redis的基础整理,常用的五种数据结构类型,String,List,Set,Hash,ZSet,下文是他们对应的简介、命令与应用案例,下文中key,value指的分别是键值,参数为values的时候指的是可以传入多个值

maven引入

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

写一个测试用例:

Jedis jedis = new Jedis("127.0.0.0",6379);
String ping = jedis.ping();
System.out.println(ping);

结果为这个=>PONG
说明可以连接成功

1.redis中的字符串

命令:

命令功能对应java代码返回值类型返回值
set插入 key和valuejedis.set(key,value)String“OK”
get根据key获取valuejedis.get(key)Stringvalue
del根据key删除jedis.del(key)Long

案例:

redis 127.0.0.1:6379> set hello world
OK
redis 127.0.0.1:6379> get hello
"world"
redis 127.0.0.1:6379> del hello
(integer) 1
redis 127.0.0.1:6379> get hello
(nil)
redis 127.0.0.1:6379>

2.redis中的列表

命令:

命令功能对应java代码返回值类型返回值
LPUSH将给定制推入列表的左端jedis.lpush(key,values)Long
RPUSH将给定制推入列表的右端jedis.rpush(key,values)Long
LPOP从列表的左侧弹出一个值,并返回被弹出的值jedis.lpop(key)Stringvalue
RPOP从列表的右侧弹出一个值,并返回被弹出的值jedis.rpop(key)Stringvalue
LRANGE获取列表在给定范围的所有值jedis.lrange(key, ,start,end);List<String>values
LINDEX获取列表在给定位置上的单个元素jedis.lindex(key,index)Stringvalue

案例:

127.0.0.1:6379> rpush list-key item
(integer) 1
127.0.0.1:6379> rpush list-key item2
(integer) 2
127.0.0.1:6379> rpush list-key item
(integer) 3
127.0.0.1:6379> lrange list-key 0 -1
1) "item"
2) "item2"
3) "item"
127.0.0.1:6379> lindex list-key 1
"item2"
127.0.0.1:6379> lpop list-key
"item"
127.0.0.1:6379> lrange list-key 0 -1
1) "item2"
2) "item"
127.0.0.1:6379> 

注:
0为起始索引
-1位结束索引

3.Redis的集合

简介:

set无法从某一端推入或者弹出
可以用SADD将元素添加入集合
SREM移除元素
SISMEMBER检查元素是否存在
SMEMBERS获取集合包含所有元素 非常多会很慢

命令:

命令功能对应java代码返回值类型返回值
SADD将元素添加入集合jedis.sadd(key,values)Long
SREM移除元素jedis.srem(key,values)Long
SISMEMBER命令判断成员元素是否是集合的成员jedis.sismember(key,value)Boolean
SMEMBERS获取集合包含所有元素 非常多会很慢jedis.smembers(key)Set<String>values

案例:

127.0.0.1:6379> sadd set-key item
(integer) 1
127.0.0.1:6379> sadd set-key item2
(integer) 1
127.0.0.1:6379> sadd set-key item3
(integer) 1
127.0.0.1:6379> sadd set-key item
(integer) 0
127.0.0.1:6379> smembers set-key
1) "item2"
2) "item3"
3) "item"
127.0.0.1:6379> sismember set-key item
(integer) 1
127.0.0.1:6379> sismember set-key item4
(integer) 0
127.0.0.1:6379> srem set-key item2
(integer) 1
127.0.0.1:6379> srem set-key item2
(integer) 0
127.0.0.1:6379> smembers set-key
1) "item3"
2) "item"
127.0.0.1:6379> 

4.Redis的散列 hash

简介:
散列可以存储多个键值对之间的映射,与字符串一样,值可以存储字符串或者数字值
并且用户可以对其数字值执行自增自减操作

命令:

命令功能对应java代码返回值类型返回值
HSET在散列里面关联起给定的键值对jedis.hset(key,field,value)Long
HGET获取置顶散列值 18行jedis.hget(key,field)String
HGETALL获取所有值jedis.hgetAll(key)Map<String, String>{field:value}
HDEL删除指定值jedis.hdel(key,field)Long

案例:

127.0.0.1:6379> hset hash-key sub-key1 value1
(integer) 1
127.0.0.1:6379> hset hash-key sub-key1 value2
(integer) 0
127.0.0.1:6379> hset hash-key sub-key1 value1
(integer) 0
127.0.0.1:6379> hset hash-key sub-key2 value1
(integer) 1
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
3) "sub-key2"
4) "value1"
127.0.0.1:6379> hdel hash-key sub-key2
(integer) 1
127.0.0.1:6379> hdel hash-key sub-key2
(integer) 0
127.0.0.1:6379> hget hash-key sub-key1
"value1"
127.0.0.1:6379> hgetall hash-key
1) "sub-key1"
2) "value1"
127.0.0.1:6379> 

5.Redis的有序集合

简介:
有序集合和散列一样,都用于存储键值对,有序集合可以根据传入的score(分数)进行排序

命令:

命令功能对应java代码返回值类型返回值
ZADD将一个带有定分值的成员添加入有序集合jedis.zadd(key,score,member)Long
ZRANGE根据索引排序,并显示索引范围内的值jedis.zrange(key,start,end)Set<String>
ZRANGEBYSCORE根据分数排序,并显示分数范围内的值jedis.zrangeByScore(key,min,max)Set<String>
ZREM该成员如果存在,就可以移除该成员jedis.zre(key,values)Long
ZINTERSTORE根据两个有序集合交集运算生成新的有序集合,分数会相加jedis.zinterstore(newkey,key1,keys)Long
ZINTERSTORE根据两个有序集合并集运算生成新的有序集合,分数会相加jedis.zunionstore(newkey,key1,keys)Long

案例:

127.0.0.1:6379> zadd zset-key 728 member1
(integer) 1
127.0.0.1:6379> zadd zset-key 982 member0
(integer) 1
127.0.0.1:6379> zadd zset-key 982 member0
(integer) 0
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "member1"
2) "728"
3) "member0"
4) "982"
127.0.0.1:6379> zrangebyscore zset-key 0 800 withscores
1) "member1"
2) "728"
127.0.0.1:6379> zrem zset-key member1
(integer) 1
127.0.0.1:6379> zrem zset-key member1
(integer) 0
127.0.0.1:6379> zrange zset-key 0 -1 withscores
1) "member0"
2) "982"
127.0.0.1:6379> zrange zset-key 0 -1 
1) "member0"
127.0.0.1:6379> 


关于java withscores,是用单独的方法jedis.zrangeWithScores/zrangeByScoreWithScores,返回值为Set<Tuple>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值