美文网首页
redis各种数据类型操作

redis各种数据类型操作

作者: jinjin1009 | 来源:发表于2021-05-31 15:48 被阅读0次

    一、有序集合
    当value是有序set类型,命令包括zadd zrange等。
    -> redis 127.0.0.1:6379> ZADD runoobkey 1 redis
    (integer) 1
    -> redis 127.0.0.1:6379> ZADD runoobkey 2 mongodb
    (integer) 1
    -> redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
    (integer) 1
    -> redis 127.0.0.1:6379> ZADD runoobkey 3 mysql
    (integer) 0
    -> redis 127.0.0.1:6379> ZADD runoobkey 4 mysql
    (integer) 0
    -> redis 127.0.0.1:6379> ZRANGE runoobkey 0 10 WITHSCORES

    1. "redis"
    2. "1"
    3. "mongodb"
    4. "2"
    5. "mysql"
    6. "4"

    二、集合
    当value是set类型,命令包括sadd smembers srem scard等。

    -> redis 127.0.0.1:6379> SADD runoobkey redis  //在前面添加元素
    (integer) 1
    -> redis 127.0.0.1:6379> SADD runoobkey mongodb
    (integer) 1
    -> redis 127.0.0.1:6379> SADD runoobkey mysql
    (integer) 1
    -> redis 127.0.0.1:6379> SADD runoobkey mysql   //没有成功添加,因为集合中已有mysql
    (integer) 0
    -> redis 127.0.0.1:6379> SMEMBERS runoobkey  //展示key下所有的值
    1) "mysql"
    2) "mongodb"
    3) "redis"
    redis 127.0.0.1:6379> SCARD runoobkey    //集合的长度
    (integer) 3
    redis 127.0.0.1:6379> SREM runoobkey mysql  //移除集合中mysql这个存在的元素
    (integer) 1
    redis 127.0.0.1:6379> SREM runoobkey foo    //移除集合中foo这个不存在的元素,移除失败
    (integer) 0
    redis 127.0.0.1:6379> SMEMBERS runoobkey
    1) "mongodb"
    2) "redis"
    redis 127.0.0.1:6379> SCARD runoobkey    //集合的长度
    (integer) 2
    

    三、列表
    当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是hash类型,hash类型可以理解为字典,需要给value指定一个field用于映射,命令包括hset hmset hget hgetall hdel hincrby del hlen hkeys等。

    -> 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"
    -> hkeys user:1001
    1) "name"
    2) "email"
    3) "password"
    -> 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  
    

    redis统计某种类型的key出现的次数

    单机

    redis-cli -p 端口 -h IP地址 keys "*"| wc -l
    

    集群

    redis-cli -p 端口 -h IP地址 keys "*"| wc -l -c(集群多了个-c)
    

    删除某种前缀开头的key

    redis-cli -h IP地址 -p 端口 keys "*" | xargs redis-cli -h IP地址 -p 端口 DEL
    

    五、字符串
    当value是string类型,命令包括set get setnx incr del等。
    -> set server:name "fido" // 设置键值
    OK
    -> get server:name // 获取键值
    "fido"
    -> mget key1 key2... // 获取多个key的键值
    -> 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

    相关文章

      网友评论

          本文标题:redis各种数据类型操作

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