您的位置:首页 > 数据库 > Redis

redis通用命令

2020-07-13 05:08 134 查看

常用命令

  1. keys [pattern] 获取键值

    keys *   获取所有的键值
    keys na* 获取na开头的键
  2. dbsize : 获取键的个数

  3. del: 删除键值对

  4. exists key :判断键值存不存在 存在返回1 不存在返回0

  5. expire: 设置键值的过期时间

  6. type : 获取键值对的数据类型

  7. ttl key : 获取键值对的剩余过期时间

下表是这几个函数的时间复杂度

命令 时间复杂度
keys O(N)
dbsize O(1)
del O(1)
exists O(1)
expire O(1)
type O(1)

String类型的常用命令

  1. getset
    key newvalue : 给已存在的key设置新的value并返回旧的value

  2. append
    key value : 将value追加到旧的value后面

  3. strlen
    key : 返回字符串的长度(注意中文)

  4. incrbyfloat
    key value : 将指定的key值和value相加。注意对应key的value要为数值型,若为字符型将报错

  5. getrange
    key begin end: 获取key对应的value 输出从begin下标到end之间的数据

  6. setrange
    key index value : 将键值对应的下标index位的数据替换成value

  7. mget
    key1 key2 key3 :批量获取键值

  8. 与之对应的是 mset 一次设置多个键值对

  9. set
    key value: 不管key存在不存在 都设置

  10. setnx
    key value :key不存在才设置(需要注意的是这是一个原子性的命令 还有相似的命令
    msetnx

  11. set key value

    xx
    : key存在才设置

  12. incr
    key: 将制定的key自增 1 若key不存在,则自增后get(key)等于 1

  13. decr
    key: 作用和
    incr
    相反

在记住以上命令的使用的时候,需要知道value的

微观
实际数据类型为string和int和row三种。
当我们存入 字符串的时候,其数据类型是string类型,但当我们存入数值的时候,其真实的类型就变成了int类型。其实想想很简单,若真是字符型,那么incr命令还怎么自增呢?

查看真实数据类型的命令 :object encoding key

另外当字符型的数据长度大于44个字节(3.2版本之前为39)的时候,其真实的类型就变成了row类型。因为 embstr编码专门用来保存短字符串的,通过一次内存分配函数来分配一块连续的空间,一次包含redisObejct和sdshdr两个结构;而raw会调用两次内存分配

哈希类型

所有的哈希类型的数据都是以h开头

  1. hget key field : 获取hash key 对应的field的value
  2. hset key field value : 设置hash key 对应的field的value
  3. hdel key field : 删除hash key 对应的field的value
  4. hgetall key field : 获取所有的键值对(注意redis单线程,避免数据过多造成阻塞)
  5. string中的方法 hash中基本也有 使用方法类似

list数据类型

  1. linsert key before|after value newValue #在指定对应的元素前或者元素后插入数据
  2. lpush key value1 value2 value3 # 将元素从左到右插入列表(其实直观看就是从右向左)
  3. rpush key value1 value2 value3 # 将元素从右到左插入列表(其实直观看就是从左向右)
  4. lrange key start end # 获取从第start位开始end位结束的元素 当start为0 end为-1时表示 获取所有元素
  5. lpop key # 从列表左侧删除一个元素
  6. rpop key # 从列表右侧删除一个元素
  7. lrem key count value #根据count的值,从列表中删除所有value相同的项
  • count >0 从左向右,删除最多count个value相同的值
  • count < 0 从右向左,删除最多 |count| 个value相同的值
  • count = 0 删除所有value相同的项
  1. ltrim key start end # 按照索引范围剪切列表集合
  2. lset key index newValue # 给指定索引设置新的值

set数据类型

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: