zoukankan      html  css  js  c++  java
  • redis数据类型常见操作

     
    ## 字符串类型
    设置值语法:
    redis> set key value [ex seconds] [px milliseconds] [nx| xx]
    
    命令选项说明:
    EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value 。
    PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SET key value PX milliseconds 的效果等同于执行 PSETEX key milliseconds value 。
    NX : 只在键不存在时, 才对键进行设置操作,用户添加。 执行 SET key value NX 的效果等同于执行 SETNX key value 。
    XX : 只在键已经存在时, 才对键进行设置操作,用于更新。
    
    
    另外,还有setex和setnx两个命令,作用和ex和nx是一样的。
    redis> setex key seconds value
    redis> setnx key value
    
    
    # 获取值
    redis> get key 
    
    如果要获取的键不存在,则返回(nil)
    
    
    # 批量设置值
    redis> mset key value [key value ...] 
    
    
    # 批量获取值
    redis> mget key [key ...] 
    
    
    # incr自增计数
    语法:
    redis> INCR key
    
    为键 key 储存的数字值加上一。
    如果键 key 不存在, 那么它的值会先被初始化为 0 , 然后再执行 INCR 命令。
    如果键 key 储存的值不能被解释为数字, 那么 INCR 命令将返回一个错误。
    数字值在 Redis 中以字符串的形式保存。
    
    范例:
    redis> SET page_view 20
    OK
    
    redis> INCR page_view
    (integer) 21
    
    redis> GET page_view    
    "21"
    
    
    # 追加值
    redis> APPEND key value
    
    如果键 key 已经存在并且它的值是一个字符串, APPEND 命令将把 value 追加到键 key 现有值的末尾。
    如果 key 不存在, APPEND 就简单地将键 key 的值设为 value , 就像执行 SET key value 一样。
    
    对不存在的 key 执行 APPEND :
    
    redis> EXISTS myphone                
    (integer) 0
    
    redis> APPEND myphone "nokia"        
    (integer) 5                         
    
    
    对已存在的字符串进行 APPEND :
    
    redis> APPEND myphone " - 1110"      
    (integer) 12
    
    redis> GET myphone
    "nokia - 1110"
    
    
    # 字符串值的长度
    redis> STRLEN key
    
    
    
    ## 哈希类型
    # 设置值
    redis> hset key field value
    
    
    # 获取值
    redis> hget key field  
    
    
    # 删除 field
    redis> hdel key field [field ...]
    
    
    # 计算field个数
    redis> hlen key  
    
    
    # 批量设置或获取field-value
    redis> hmset key field value [field value ...]
    redis> hmget key field [field ...] 
    
    
    # 判断field是否存在
    redis> hexists key field  
    
    
    # 获取所有field
    redis> hkyes key
    
    
    # 获取所有value
    redis> hvals key
    
    
    # 获取所有field-value
    redis> hgetall key
    
    
    # 计算value的字符串长度
    redis> hstrlen key field  
    
    
    
    ## 列表类型
    # 从右边插入元素
    redis> rpush key value [value ...] 
    
    
    # 从坐边插入元素
    redis> lpush key value [value ...] 
    
    
    # 向某个元素前或者后插入元素
    redis> linsert key before|after pivot value
    
    
    # 获取指定范围内的元素列表
    redis> lrange key start end 
    
    
    # 获取列表指定索引下标的元素
    redis> lindex key index
    
    
    # 获取列表长度
    redis> llen key 
    
    
    # 从列表左侧弹出删除元素
    redis> lpop key 
    
    
    # 从列表右侧弹出删除元素
    redis> rpop key 
    
    
    # 删除指定元素
    redis> lrem key count value
    
    
    # 按照索引范围修剪列表
    redis> ltrim key start end 
    
    
    # 修改
    redis> lset key index new_value
     
     
     
    ## 集合类型
    # 添加元素
    redis> sadd key element [element ...]
    
    
    # 删除元素
    redis> srem key element [element ...]
    
    
    # 计算元素个数
    redis> scard key
    
    
    # 判断元素是否在集合中
    redis> sismember key element
    
    
    # 随机从集合返回指定个数元素
    redis> srandmember key [count]
    
    
    # 随机从集合弹出元素
    redis> spop key
    
    
    # 获取所有元素
    redis> smembers key
    
    
    # 求多个集合的交集
    redis> sinter key [key ...]
    
    
    # 求多个集合的并集
    redis> sunion key [key ...]
    
    
    # 求多个集合的差集
    redis> sdiff key [key ...]
    
    
    
    ## 有序集合类型
    # 添加成员
    redis> zadd key score member [score member ...]
    
    
    # 计算元素个数
    redis> zcard key
    
    
    # 计算某个成员的分数
    redis> zscore key member
    
    
    # 计算成员的排名
    redis> zrank key member
    
    
    # 删除成员
    redis> zrem key member [member ...]
    
    
    # 增加成员的分数
    redis> zincrby key member
    
    
    # 返回指定排名范围的成员
    从低到高
    redis> zrange key start end [withscores]
    
    从高到低
    redis> zrevrange key start end [withscores]
    
    
    # 返回指定分数范围的成员
    从低到高
    redis> zrangebyscore key min max [limit offset count]
    
    从高到低
    redis> zrevrangebyscore key max min [limit offset count]
    
    
    # 删除指定排名内的升序元素
    redis> zremrangebyrank key start end
    
    
    # 删除指定分数范围的成员 
    redis> zremrangebyscore key min max
    
    
    
     
     
  • 相关阅读:
    生成器,迭代器
    [LeetCode] Minimum Depth of Binary Tree
    [LeetCode] Sum Root to Leaf Numbers
    [LeetCode]Sort Colors
    [LeetCode] Remove Nth Node From End of List
    [LeetCode] Palindrome Number
    [LeetCode] Container With Most Water
    [LeetCode] Pascal's Triangle II
    [LeetCode] Path Sum
    [LeetCode] Search a 2D Matrix
  • 原文地址:https://www.cnblogs.com/l10n/p/13847871.html
Copyright © 2011-2022 走看看