美文网首页
Redis自我学习

Redis自我学习

作者: maohh | 来源:发表于2020-09-08 18:43 被阅读0次

    Redis

    Redis 的主要五种数据类型

    1. String
    2. Hash
    3. List
    4. Set
    5. Zset

    Redis 的扩展类型

    1. 地理经纬度查询(geo)

      #############################################################geoadd
      geoadd china:city 100 200 chongqing
      #############################################################georadius、georadiusbymember
      ## georadius 从redis中获取指定经纬度附近哪些人及距离
      redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
      (integer) 2
      redis> GEORADIUS Sicily 15 37 200 km WITHDIST
      1) 1) "Palermo"
         2) "190.4424"
      2) 1) "Catania"
         2) "56.4413"
      redis> GEORADIUS Sicily 15 37 200 km WITHCOORD
      1) 1) "Palermo"
         2) 1) "13.36138933897018433"
            2) "38.11555639549629859"
      2) 1) "Catania"
         2) 1) "15.08726745843887329"
            2) "37.50266842333162032"
      redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
      1) 1) "Palermo"
         2) "190.4424"
         3) 1) "13.36138933897018433"
            2) "38.11555639549629859"
      2) 1) "Catania"
         2) "56.4413"
         3) 1) "15.08726745843887329"
            2) "37.50266842333162032"
      redis>
      ## 从redis中指定对象附近多少距离的人
      redis> GEOADD Sicily 13.583333 37.316667 "Agrigento"
      (integer) 1
      redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
      (integer) 2
      redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km
      1) "Agrigento"
      2) "Palermo"
      #############################################################
      

    redis 的事务

    1. ACID

    2. 事务

      1. 开启事务(multi)
      2. 操作入队(set)
      3. 执行事务(exec) 放弃事务(discard)
    3. Watch 事务锁

      127.0.0.1:6379> set money 1000
      OK
      127.0.0.1:6379> set out 0
      OK
      127.0.0.1:6379> WATCH money
      OK
      127.0.0.1:6379> MULTI
      OK
      127.0.0.1:6379> DECRBY money 100
      QUEUED
      127.0.0.1:6379> INCRBY out 100
      QUEUED
      127.0.0.1:6379> EXEC   ## 如果这里有其他线程对money进行操作赋值的话,命令会执行失败;
      1) (integer) 900
      2) (integer) 100
      127.0.0.1:6379> UNWATCH
      OK
      

    Jedis

    持久化策略

    RDB(默认)

    存储在自己本地的redisdb中,创建子线程,然后通过定时及触发条件来进行创建镜像,后缀为rdb,有一定可能性丢失数据;

    AOF

    存储在本地文件中,他是每一条操作都要进行记录append,不会进行修改,后续启动过程会十分缓慢,数据恢复比较缓慢,但是数据是完整的,不会丢失了;会产生aof后缀的文件;每一秒同步一次

    消息队列

    订阅频道

    127.0.0.1:6379> SUBSCRIBE shop
    Reading messages... (press Ctrl-C to quit)
    1) "subscribe"
    2) "shop"
    3) (integer) 1
    1) "message"
    2) "shop"
    3) "1234"
    1) "message"
    2) "shop"
    3) "1234"
    1) "message"
    2) "shop"
    3) "test"
    

    推送消息到频道

    127.0.0.1:6379> PUBLISH shop 1234 ## 这里是用来消息发送的
    (integer) 1
    127.0.0.1:6379> PUBLISH shop test
    (integer) 1
    127.0.0.1:6379>
    

    相关文章

      网友评论

          本文标题:Redis自我学习

          本文链接:https://www.haomeiwen.com/subject/ptyjektx.html