• Redis安装和客户端cli常见操作


    安装Redis

    $ wget http://download.redis.io/releases/redis-4.0.6.tar.gz
    $ tar xzf redis-4.0.6.tar.gz
    $ cd redis-4.0.6
    $ make
    
    
    #编译完成后,redis的二进制程序在src目录中
    
    #启动redis服务端
    $ src/redis-server
    
    
    #启动redis客户端
    $ src/redis-cli

    Redis客户端常见操作

    Redis是key-value数据库,支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

    • 当value是string类型,命令包括set get setnx incr del 等。
    > set server:name "fido"  // 设置键值
    OK
    > get server:name  // 获取键值
    "fido"
    > setnx connections 10   // set if not exists
    OK
    > incr connections   // 原子性增加values值
    (integer) 11
    > incr connections
    (integer) 12
    > del connections  // 删除key
    (integer) 1
    > incr connections
    (integer) 1
    
    • 当value是list类型,命令包括rpush lpush llen lrange lpop rpop del 等。
    > rpush friends "Alice"   // 在末尾追加
    (integer) 1
    > rpush friends "Bob"
    (integer) 2
    > lpush friends "Sam"    // 插入到开头
    (integer) 3
    
    > lrange friends 0 -1     // 返回列表的子集,类似切片操作
    1) "Sam"
    2) "Alice"
    3) "Bob"
    > lrange friends 0 1
    1) "Sam"
    2) "Alice"
    > lrange friends 1 2
    1) "Alice"
    2) "Bob"
    
    > llen friends   // 返回列表长度
    (integer) 3
    > lpop friends   // 删除并返回列表第一个元素
    "Sam"
    > rpop friends   // 删除并返回列表最后一个元素
    "Bob"
    > lrange friends 0 -1
    1) "Alice"
    
    > del friends    // 删除key
    (integer) 1     // 1表示成功,0表示失败
    

      

    • 当value是set类型,命令包括sadd srem sismember smembers sunion del等。
    > sadd superpowers "flight"     // 添加元素
    (integer) 1
    > sadd superpowers "x-ray vision"
    (integer) 1
    > sadd superpowers "reflexes"
    (integer) 1
    > srem superpowers "reflexes"   // 删除元素
    1
    
    > sismember superpowers "flight"   // 测试元素是否在集合中
    (integer) 1
    > sismember superpowers "reflexes"
    (integer) 0
    > smembers superpowers    // 返回集合中所有元素
    1) "x-ray vision"
    2) "flight"
    
    > sadd birdpowers "pecking"
    (integer) 1
    > sadd birdpowers "flight"
    (integer) 1
    > sunion superpowers birdpowers    // 合并多个set,返回合并后的元素列表
    1) "x-ray vision"
    2) "flight"
    3) "pecking"
    
    > del superpowers   // 删除key
    (integer) 1
    

      

    • 当value是zset类型,命令包括 zadd zrange del等,注意给value一个编号用于排序。
    > zadd hacker 1940 "Alan Kay"     // 给value指定一个编号,比如以年份1940作为编号
    (integer) 1
    > zadd hacker 1906 "Grace Hopper"
    (integer) 1
    > zadd hacker 1953 "Richard Stallman"
    (integer) 1
    > zadd hacker 1965 "Yukihiro Matsumoto"
    (integer) 1
    > zadd hacker 1916 "Claude Shannon"
    (integer) 1
    > zadd hacker 1969 "Linux Torvalds"
    (integer) 1
    > zadd hacker 1957 "Sophie Wilson"
    (integer) 1
    > zadd hacker 1912 "Alan Turing"
    (integer) 1
    
    > zrange hacker 2 4    // 切片返回有序集合中元素
    1) "Claude Shannon"
    2) "Alan Kay"
    3) "Richard Stallman"
    
    > del hacker    // 删除key
    (integer) 1
    

      

    • 当value是hash类型,hash类型可以理解为字典,需要给value指定一个field用于映射,命令包括hset hmset hget hgetall hdel hincrby del 等。
    > hset user:1000 name "John Smith"   // 给value指定一个field,比如name
    (integer) 1
    > hset user:1000 email "john.smith@example.com"
    (integer) 1
    > hset user:1000 password "s3cret"
    (integer) 1
    > hgetall user:1000   // 获得hash表中所有成员,包括field和value
    1) "name"
    2) "John Smith"
    3) "email"
    4) "john.smith@example.com"
    5) "password"
    6) "s3cret"
    
    > hmset user:1001 name "Mary Jones" password "hidden" email 
    "mjones@example.com"   // 设置多个field和value
    OK
    > hget user:1001 name   // 根据field获取value
    "Mary Jones"
     
    > hset user:1000 visits 10    // field可以映射到数字值
    (integer) 1
    > hincrby user:1000 visits 1    // 原子性增加value的值,增加1
    (integer) 11
    > hincrby user:1000 visits 10    // 增加10
    (integer) 21
    > hdel user:1000 visits      // 删除field及其value
    (integer) 1
    > hincrby user:1000 visits 1
    (integer) 1
    
    > del user:1000     // 删除key
    (integer) 1
    

      

    • 设置和查看key的生命周期,key过期会被自动删除,命令包括expire ttl 等。
    > set resource:lock "Redis Demo"
    OK
    > expire resource:lock 120   // 设置生命周期为120s
    (integer) 1
    > ttl resource:lock   // 查看当前生命周期还剩多少时间
    (integer) 109
    > ttl resource:lock   // 120s后查看,返回-2表示已过期或不存在
    (integer) -2
    
    > set resource:lock "Redis Demo 2"
    OK
    > ttl resource:lock    // 返回-1表示永不过期
    (integer) -1
    

      

  • 相关阅读:
    滴滴 cubeui 教程
    继往开来的 sass 3 代编译器:ruby sass、nodesass、dartsass
    研究大佬用 Vue 写的倒计时组件,学到了不少东西
    狠人!标星 3.4 万的项目说删就删,几行代码搞崩数万个开源项目
    本人EE知识体系导航 Embedded menu
    PMP之思维――我的PMP备考之旅
    总有些瞬间,能温暖整个曾经
    不是一辈子的人,不说一辈子的话
    QImage对一般图像的处理
    从零开始系统深入学习android(已完成部分的目录带链接)
  • 原文地址:https://www.cnblogs.com/Peter2014/p/8126725.html
Copyright © 2020-2023  润新知