zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    python configparser模块
    python shutil模块
    软件架构百度百科
    设计模式
    python Sys module
    python time module
    对别人的敬仰就是对自己的信心。数据和计算给了人类史无前例的巨大能力,也带来了前所未有的未知,挑战着人类的自信。
    阿波罗计划里最了不起的就是自信心,这份自信,比任何事情都重要。到今天为止,我觉得美国这个国家做的最有领导力的事情就是阿波罗登月计划。今天我们享受的很多科技,从通信技术到生物医疗,再到材料以及其他很多东西,都要感谢阿波罗登月计划打下的非常好的基础。
    打一个不太恰当的比方,我们与技术的关系就像是农夫与蛇。什么是对技术的热爱?你真的相信技术会改变很多东西吗?你有没有足够的自信和热爱,去捂暖这条蛇,哪怕它苏醒以后可能会咬你一口?
    人们熟知的一句名言是:“天才是1%的灵感加99%的汗水。”可如果没有那1%的灵感,世界上所有的汗水也就仅仅是一桶汗水而已。
  • 原文地址:https://www.cnblogs.com/Peter2014/p/8126725.html
Copyright © 2011-2022 走看看