try redis - 快速入门(一)

   本人也是刚刚开始学习redis,博客就当是我的一个笔记。同时供大家交流学习使用。

    redis 官网提供了一个非常好的入门的在线交互式教程:http://try.redis.io/ ,我就是根据这个教程来一步一步学习的。


    一、SET/GET

   redis 作为 key-value 存储,常常被当做NoSQL使用。key-value 存储的本质就是,通过key能够保持value的值。如果能够唯一确认key,能够稍后取出value的值。SET就是用来存储值的。

SET server:name "weiyw"

redis会永久存储我们的数据。所以我们可以稍后向redis询问“我们在key为server:name存的值是什么?”而,redis将会给我返回 “weiyw”

        GET server:name

127.0.0.1:6379 > SET server:name "weiyw"
OK
127.0.0.1:6379 > GET server:name
"weiyw"

二、INCR , DEL

DEL 是通过一个已知key 来删除 value.

INCR 是用来自自增长value.

127.0.0.1:6379 > SET connections 10
OK
127.0.0.1:6379 > INCR connections
(integer) 11
127.0.0.1:6379 > INCR connections
(integer) 12
127.0.0.1:6379 > DEL connections
(integer) 1
127.0.0.1:6379> GET connections
(nil)
127.0.0.1:6379 > INCR connections
(integer) 1
通过上面代码执行结果可以发现,当del后,尝试获取connections的值的时候,会发现为nil,也就是不存在的意思,但是当调用INCR的时候,可以自增长到1。 这说明INCR发现key对应的值不存在的时候,会给其value初始化成0。然后再自增长。

三、EXPIRE , TTL

redis 可以设置一个key的生命周期,这个时间的设置可以通过 EXPIRE完成。

       SET resource:lock "Redis Demo"
        EXPIRE resource:lock 120

其中,key为resource:lock的对象将会在 120 后被删除。当然我们可以用TTL命令来查看key还可以生存多久

       TTL resource:lock 

该命令会返回 resource:lock 的生命周期。如果返回 -2 则说明当前key不存在。返回 -1 则说明当前key永远不会过期。

127.0.0.1:6379> SET resource:lock "wei_ya_wen"
OK
127.0.0.1:6379> EXPIRE resource:lock 60
(integer) 1
127.0.0.1:6379> GET resource:lock
"wei_ya_wen"
127.0.0.1:6379> TTL resource:lock
(integer) 41
127.0.0.1:6379> TTL resource:lock
(integer) 37
127.0.0.1:6379> TTL resource:lock
(integer) 37
127.0.0.1:6379> TTL resource:lock
(integer) 35
127.0.0.1:6379> TTL resource:lock
(integer) 14
127.0.0.1:6379> TTL resource:lock
(integer) 1
127.0.0.1:6379> TTL resource:lock
(integer) -2
127.0.0.1:6379> GET resource:lock
(nil)

上面的操作设置了一个 key 为 resource:lock,设置了生命周期为 60 秒。TTL命令可以看出在不同时间段,key的存活时间。当超过60S后,TTL返回-2,说明当前值不存在。为验证准确性,再调用GET,发现确实不存在。返回nil

四、RPUSH, LPUSH, LLEN, LRANGE, LPOP, and RPOP  (redis 的LIST 处理,算redis的新特性吧)

 redis 也支持集中比较复杂的数据类型。首当其冲的就是list.List可以理解为是一系列顺序排列的值。在redis中,我们可以讲key当做一个list来处理。

RPUSH:将new value 直接放到List末端(R我个人觉得可以理解为right ,也就是右端的意思)

127.0.0.1:6379> RPUSH friends "wei"
(integer) 1
127.0.0.1:6379> RPUSH friends "ya"
(integer) 2
127.0.0.1:6379> RPUSH friends "wen"
(integer) 3
    其中的数字表示LIST的长度。

LPUSH: 将 new value 放置到LIST的最前端

127.0.0.1:6379> LPUSH friends "first"
(integer) 4

LRANGE:可以理解为截取 LIST的子集合,需要两个参数。参数1:起始位置下标(从0开始计算),参数2 结束位置下标(当设置为-1时,表示结束位置为当前list的最末端)。

127.0.0.1:6379> LRANGE friends 0 -1
1) "first"
2) "wei"
3) "ya"
4) "wen"
127.0.0.1:6379> LANGE friends 0 1
(error) ERR unknown command 'LANGE'
127.0.0.1:6379> LRANGE friends 0 1
1) "first"
2) "wei"
127.0.0.1:6379> LRANGE friends 1 2
1) "wei"
2) "ya"
上面实例分别查询了

   LRANGE friends 0 -1 ====》》获取从 第1个位置到最后一个位置的集合
    LRANGE friends 0 1 ====》》获取从第1个位置到第二个位置的集合
    LRANGE friends 1 2 ====》》 获取从第2个位置到第三个位置的集合

       LLEN : 返回LIST的当前长度

LLEN friends
(integer) 4

       LPOP : 类似出队列。删除LIST的第一个元素,并且返回。

127.0.0.1:6379> LPOP friends
"first"

      RPOP: 删除LIST的最后一个元素,并且返回。

127.0.0.1:6379> RPOP friends
"wen"

五、SADD, SREM, SISMEMBER, SMEMBERS ,SUNION.(redis 中 Set 数据结构的特性)

redis 还支持set类型。Set 和 List的处理类似,但是除了每个元素只能出现一次


     SADD  添加 value 到当前的 Set 中

127.0.0.1:6379> 
127.0.0.1:6379> SADD superpowers "wei"
(integer) 1
127.0.0.1:6379> SADD superpowers "ya"
(integer) 1
127.0.0.1:6379> SADD superpowers "wen"
(integer) 1
127.0.0.1:6379> SADD superpowers "wen"
例子中,当我两次添加 "wen"的时候,第二次添加没有成功,返回了 0


SREM  通过给定的value,从set中删除该值

127.0.0.1:6379> SREM superpowers "wen"
(integer) 1
127.0.0.1:6379> SREM superpowers "wen"
(integer) 0
返回的是受影响的数量

SISMEMBER  通过给定value,判断该value是否存在该set中(有点类似jdk 中的contain() 方法)

  

127.0.0.1:6379> SISMEMBER superpowers "ya"
(integer) 1
127.0.0.1:6379> SISMEMBER superpowers "wen"
(integer) 0

由于 “wen” 在刚刚做删除测试的时候,已经删除了。所以返回0.


SMEMBERS  返回当前set的值的集合





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值