Redis常用命令及其案例2020

举报
知识浅谈 发表于 2022/06/28 22:21:52 2022/06/28
【摘要】 redis 相关命令 概述:redis是键值对的格式,键是字符串的形式,而其值是{字符串(String),哈希(hash),列表(list),无序集合(set),有序集合(zset)} 1.字符串操作...

redis 相关命令

概述:redis是键值对的格式,键是字符串的形式,而其值是{字符串(String),哈希(hash),列表(list),无序集合(set),有序集合(zset)}

1.字符串操作

添加修改值

  • set键值

    • 如果键不存在,就是添加
    • 如果键存在,就是修改
     set user aaa
     #添加一个键user 值为aaa
     set user1 bbb
     #添加一个键user1 值为bbb
    
        
       
    • 1
    • 2
    • 3
    • 4
  • setex 键 过期时间 值 带有过期时间的键值对设置

    127.0.0.1:6379> setex key3 10 value3
    OK
    127.0.0.1:6379> get key3
    value3
    127.0.0.1:6379> get key3
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
  • ​ mset 键1 值1 键2 值2 … 同时设置多个键值对

    127.0.0.1:6379> mset user1 aaa user2 bbb user3 ccc
    OK
    127.0.0.1:6379> get user1
    aaa
    127.0.0.1:6379> get user2
    bbb
    127.0.0.1:6379> get user3
    ccc
    127.0.0.1:6379> 
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • mget key1 key2 … 获取多个键的值

    127.0.0.1:6379> mget user1 user2 user3
    aaa
    bbb
    ccchaha
    
        
       
    • 1
    • 2
    • 3
    • 4
  • append key value 如果原来优质就追加值,没有的话相当于set的作用

    127.0.0.1:6379> APPEND user3 haha
    7
    127.0.0.1:6379> get user3
    ccchaha
    
        
       
    • 1
    • 2
    • 3
    • 4
  • del key1 key2 … 删除多个键值对

    127.0.0.1:6379> del user1 user2
    2    这个是返回的2
    
        
       
    • 1
    • 2

键命令

  • keys pattern

    127.0.0.1:6379> keys user1
    user1
    127.0.0.1:6379> keys user11
        //这里显示的是空,因为user11不存在
    
        
       
    • 1
    • 2
    • 3
    • 4
  • keys * 表示查询所有的键

    127.0.0.1:6379> keys *
    user2
    user3
    key1
    user1
    use3
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • exists key1 判断键是否存在

    127.0.0.1:6379> exists user1
    1
    127.0.0.1:6379> exists user11
    0
    
        
       
    • 1
    • 2
    • 3
    • 4
  • type key1 查看键对应的值的类型

    127.0.0.1:6379> type user1
    string
    
        
       
    • 1
    • 2
  • expire key1 time 设置键的过期时间,因为可能有一些键在刚开始设置的时候没有设置过期时间,之后有需求的时候可以使用这个命令

    127.0.0.1:6379> expire user1 3
    1
    127.0.0.1:6379> get user1
        //到这就没有了
    
        
       
    • 1
    • 2
    • 3
    • 4
  • ttl key1 查看这个键能活多久

    127.0.0.1:6379> expire user2 100
    1
    127.0.0.1:6379> ttl user2
    95
    127.0.0.1:6379> ttl user2
    93
    127.0.0.1:6379> ttl user2
    91
    127.0.0.1:6379> ttl user2
    85
    127.0.0.1:6379> expire user2 100   //在效使的过程中还可以重新设置键的消失时间
    1
    127.0.0.1:6379> ttl user2
    99
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • hset key1 字段1 值1 其中key1为键,(字段1,值1)为值 ,但是这个命令只能设置一个字段

    127.0.0.1:6379> hset user1 param1 value1
    1
    
        
       
    • 1
    • 2
  • hmset key1 字段1 值1 字段2 值2 …这个可以有多个字段

    127.0.0.1:6379> hmset user5 field1 value1 field2 value2
    OK
    
        
       
    • 1
    • 2
  • hkeys key1 表示获取键的所有字段

    127.0.0.1:6379> hkeys user5
    field1
    field2
    
        
       
    • 1
    • 2
    • 3
  • hget key field 获取一个字段的值

    127.0.0.1:6379> hget user5 field1
    value1
    
        
       
    • 1
    • 2
  • hmget key field1 field2 获取多个字段的值

    127.0.0.1:6379> hmget user5 field1 field2
    value1
    value2
    
        
       
    • 1
    • 2
    • 3
  • hvals key 获取key的所有字段的值

    127.0.0.1:6379> hkeys user5
    field1
    field2
    
        
       
    • 1
    • 2
    • 3
  • hgetall key 获取key的所有字段名和对应的值

    127.0.0.1:6379> hgetall user5
    field1
    value1
    field2
    value2
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
  • hdel key1 field1 删除key1中的field1这个字段值

    127.0.0.1:6379> hdel user5 field1
    1
    127.0.0.1:6379> hvals user5
    value2
    
        
       
    • 1
    • 2
    • 3
    • 4
  • del key1 key2 这个命令会删除所有的键和其对应的字段

    127.0.0.1:6379> del user5
    1
    127.0.0.1:6379> exists user5
    0
    
        
       
    • 1
    • 2
    • 3
    • 4

列表

  • 添加值,因为是列表,所以是从两侧都可以添加

  • lpush key1 val1 val2 从列表的左边把值添加进去

  • rpush key1 val3 val4 从列表的右侧把值添加进去

    127.0.0.1:6379> lpush user6 2 3 4 5
    5
    127.0.0.1:6379> 
    127.0.0.1:6379> rpush user6 0 0 0
    8
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
  • linsert rinsert 在指定的值的前边或者后边插入值

    127.0.0.1:6379> linsert user6 before 3 -1
    9
    127.0.0.1:6379> linsert user6 after 3 -1
    10
    
        
       
    • 1
    • 2
    • 3
    • 4
  • 获取lrange start end 左边索引从0开始,右边的索引从-1 开始

    127.0.0.1:6379> lrange user6 0 5   //先边是对应的获取的值
    5
    4
    -1
    3
    -1
    2
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • lset key1 1 str 可以修改key1中索引为1的值为str

    127.0.0.1:6379> lset user6 1 wer
    OK
    
        
       
    • 1
    • 2
  • lrem key count value 表示的是删除key对应的列表中的count个value的值,若count>0 表示从左向右删除,count<0表示从右向左删除,count表示删除所有的值

    127.0.0.1:6379> lrem user6 1  3
    1
    127.0.0.1:6379> lrange user6 0 -1
    5
    wer
    -1
    -1
    2
    1
    0
    0
    0
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

set 无序集合:(集合里边是不允许是有重复值的)就是存储的时候不像是列表是有序的

  • 集合中值之恶能添加与删除,不能修改

  • smembers key1 获取集合中的值

    127.0.0.1:6379> smembers set1
    1
    2
    3
    
        
       
    • 1
    • 2
    • 3
    • 4
  • srem key param 就是删除key中的param这个值

    127.0.0.1:6379> srem set1 2
    1
    127.0.0.1:6379> smembers set1
    1
    3
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5

    对于zset有序集合中的数值为什么是有序的,同理有序集合中的数据也是只能添加删除,但是不能修改

image-20201031194550365

排序之后每个之还会有一个索引

image-20201031194921896

  • 添加:zadd key score1 value1 score2 value2

    127.0.0.1:6379> zadd user7 1 asd 3 qwe 2 zxc
    3
    
        
       
    • 1
    • 2
  • 查看:zrange key start end [withscores] 后边的这个withscores可有可无,如果要输出没元素对应的分数,应带上。

    127.0.0.1:6379> zrange user7 0 -1 withscores 
    asd
    1
    zxc
    2
    qwe
    3
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • zrangebyscore key score1 score2 [withscores] 表示的是去除score在score1到score2之间的值

    127.0.0.1:6379> zrange user7 0 -1 withscores
    zxc
    2
    qwe
    3
    ert
    4
    fgh
    6
    asd
    9
    127.0.0.1:6379> zrangebyscore user7 4 6
    ert
    fgh
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • zscore key value 表示的是chaxunkey这个表中的value的score

    127.0.0.1:6379> zscore user7 fgh
    6
    
        
       
    • 1
    • 2
  • zrem key param 表示的是删除param这个集合中的param元素

    127.0.0.1:6379> zrem user7 fgh
    1
    
        
       
    • 1
    • 2
  • zremrangebyscore key score1 score2 删除可key中对应的值

    127.0.0.1:6379> zremrangebyscore user7 3 6
    2
    127.0.0.1:6379> zrange user7 0 -1
    zxc
    asd
    
        
       
    • 1
    • 2
    • 3
    • 4
    • 5

文章来源: englishcode.blog.csdn.net,作者:知识浅谈,版权归原作者所有,如需转载,请联系作者。

原文链接:englishcode.blog.csdn.net/article/details/109407351

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。