Redis指令速通-学习笔记
| 2024-3-21
0  |  阅读时长 0 分钟
日期
Mar 20, 2024 → Mar 21, 2024
Tags
笔记
Redis
💡
记录一些Redis指令,学习实操,加深印象。Redis在线练习网站:https://try.redis.io/
DECR, DECRBY, DEL, EXISTS, EXPIRE, GET, GETSET, HDEL, HEXISTS, HGET, HGETALL, HINCRBY, HKEYS, HLEN, HMGET, HMSET, HSET, HVALS, INCR, INCRBY, KEYS, LINDEX, LLEN, LPOP, LPUSH, LRANGE, LREM, LSET, LTRIM, MGET, MSET, MSETNX, MULTI, PEXPIRE, RENAME, RENAMENX, RPOP, RPOPLPUSH, RPUSH, SADD, SCARD, SDIFF, SDIFFSTORE, SET, SETEX, SETNX, SINTER, SINTERSTORE, SISMEMBER, SMEMBERS, SMOVE, SORT, SPOP, SRANDMEMBER, SREM, SUNION, SUNIONSTORE, TTL, TYPE, ZADD, ZCARD, ZCOUNT, ZINCRBY, ZRANGE, ZRANGEBYSCORE, ZRANK, ZREM, ZREMRANGEBYSCORE, ZREVRANGE, ZSCORE
  1. 为什么Redis中使用INCR,而不通过下面的代码去修改数据
      • 上面的指令只能在一个单个客户端使用,当同时有两个客户端去操作x的时候,有可能会发生数据修改异常的问题(数据应加两次,但是只加了一次),原因是上面的代码不是原子操作(atomic operation)
      • INCR是原子操作,不需要考虑并发问题
      • 所有由单个命令实现的 Redis 操作都是原子操作,包括在更复杂的数据结构上操作的操作。因此,当您使用修改某些值的 Redis 命令时,不必考虑并发访问
  1. 通过 EXPIRETTL 命令(单位为秒)以及类似的 PEXPIREPTTL 命令(单位为毫秒),可以实现key在Redis中存在一定时间
      • EXPIRE设置过期时间
        • TTL查询key的过期时间
          • 正数意味着过期时间,-2表示key不存在,-1表示key永远不会过期
          • 每一次SET之后,都会重置它的TTL(变回-1
        • PERSIST可以重新把key设置为永不过期
    1. Redis中的list操作:与列表进行交互的一些重要命令包括 RPUSHLPUSHLLENLRANGELPOPRPOP。您可以立即开始使用作为列表的键,只要它不是以其他类型存在。
      1. 在Redis中不需要事先创建键就可以向其添加内容,直接使用命令添加新元素即可 1)作为副作用的key将被创建,如果它不存在。 2)在执行某个命令后将导致为空的key将自动从键空间中删除。
        • RPUSH向list的末尾添加元素,返回list的长度
        • LPUSH向list的开头添加元素,返回list的长度
        • LRANGE返回list的子集(下标从0开始),负数表示倒数的下标
          • LPOPRPOP从list的开头/结尾中移除元素,返回元素的值
          • LLEN返回list的长度
          • RPUSHLPUSH支持多变参数,可以一次加入多个元素,返回list的长度
        1. Redis中的set操作:集合没有特定的顺序,每个元素只能出现一次。与集合进行交互的一些重要命令是 SADDSREMSISMEMBERSMEMMBERS SUNION
            • SADD向set中添加元素,返回成功添加入set的元素数
              • 当set中存在当前要添加的元素时,返回0,反之返回成功添加入set的元素数
            • SREM 从集合中移除给定的成员,返回1或0以表示该成员是否确实存在。
            • SISMEMBER测试当前值是否在set中,返回1或0以表示该成员是否存在。
            • SMEMMBERS返回集合中的所有元素
            • SUNION合并两个或多个集合,返回合并得到的所有元素
            • SPOP从集合中随机取出指定数量的元素,返回的元素会从集合中删除
              • 类似于 LPOP 和 RPOP 的命令,以便从集合中提取元素并在单个操作中将它们返回给客户机。
              • 由于集合不是有序的数据结构,SPOP返回(和删除)的元素是完全随意的。
            • SRANDMEMBER可以随机从集合中取出指定数量的元素,但是不删除元素
              • 指定数量为正(n)时,若大于集合总数(m),也只能返回相同的数量(m)
              • 指定数量为负(-n)时,若绝对值大于集合总数(m),会从集合中返回重复的数(n)
        1. Redis中的zset操作:Redis1.2中引入了有序集合,在添加元素的时候可以指定一个score,这个score会用于元素的排序,默认顺序为递增排序。与有序集合进行交互的一些重要命令是 ZADD, ZCARD, ZCOUNT, ZINCRBY, ZRANGE, ZRANGEBYSCORE, ZRANK, ZREM, ZREMRANGEBYSCORE, ZREVRANGE, ZSCORE
            • ZADD向zset中添加元素,返回成功添加入set的元素数
              • 当添加的元素已存在时,ZADD返回0,更新元素的score
            • ZRANGE从zset中取出给定下标范围内的元素(下标从0开始),负数表示倒数的下标
              • ZCOUNT统计集合中在给定score范围内的元素个数
                • ZCARD返回所给出的集合的集合基数(元素数),若该集合不存在,返回0
                • ZINCRBY向集合中指定的元素的score添加增量,若该元素不存在,直接从零开始添加,返回最新的score
                  • ZRANGEBYSCORE从zset中取出指定score范围内的元素
                    • ZRANK获取指定元素在zset中的排名(从0开始),若指定元素不存在返回nil
                    • ZSCORE获取指定元素在zset中的score(float),若指定元素不存在返回nil
                      • ZREM从zset中移除指定元素,返回移除的元素个数
                      • ZREMRANGEBYSCORE从zset中移除指定score范围内的元素,返回移除的元素个数
                      • ZREVRANGE可以看成是ZRANGE的逆序版本
                  1. Redis中的hash操作,重要的指令有HDEL, HEXISTS, HGET, HGETALL, HINCRBY, HKEYS, HLEN, HMGET, HMSET, HSET, HVALS。hash是字符串字段和字符串值之间的映射,是表示对象的完美数据类型(例如: 具有诸如名称、姓氏、年龄等字段的 User)
                      • HSET用于设置键值对,如果创建了新字段,返回1;如果该字段已经存在,HSET更新该值,且返回0;
                      • HMSET可以同时设置多个字段
                        • HGET用于获取指定键的值,不存在则返回nil
                        • HMGET可以同时获取多个指定key的值,不存在则返回nil
                        • HGETALL可以获取hash中的所有键值对
                        • HINCRBY可以对键值对值类型为数值型的元素进行递增,返回操作后的新值,HINCRBY支持的值范围限制为64位有符号的整数
                        • HDEL删除指定key的键值对
                        • HLEN获取hash的长度
                        • HKEYS获取hash中的key列表
                        • HVALS获取hash中的value列表
                        • HEXISTS用于检测key是否存在hash中,若存在返回1,反之返回0
                    Loading...
                    目录