文章目录
  1. 1. redis类型
  2. 2. String类型
    1. 2.1. set、get和del方法:
    2. 2.2. 使用setnx (not exist)
    3. 2.3. 使用setex (expired)
    4. 2.4. 使用setrange 替换字符串
    5. 2.5. 一次性设置或者获取多个值mset、mget 方法
    6. 2.6. 一次性获取设置getset方法
    7. 2.7. incr和decr方法
    8. 2.8. incrby和decrby方法
    9. 2.9. append方法追加字符串
    10. 2.10. strlen方法获取key的长度
  3. 3. Hash类型
    1. 3.1. 设置和获取Hash方法
    2. 3.2. Hash类型的其他常用方法
  4. 4. List类型
    1. 4.1. lpush和lrange方法
    2. 4.2. rpush方法
    3. 4.3. linsert方法
    4. 4.4. lset方法
    5. 4.5. lrem方法
    6. 4.6. ltrim方法
    7. 4.7. lpop方法
    8. 4.8. rpop方法
  5. 5. Set类型
    1. 5.1. sadd方法
    2. 5.2. smembers方法
    3. 5.3. srem方法
    4. 5.4. spop方法
    5. 5.5. sdiff方法
    6. 5.6. sdiffstore方法
    7. 5.7. sinter方法
    8. 5.8. sinterstore方法
    9. 5.9. sunion方法
    10. 5.10. sunionstore方法
    11. 5.11. smove方法
    12. 5.12. scard方法
    13. 5.13. sismember方法
    14. 5.14. srandmember方法
  6. 6. zset集合类型
    1. 6.1. zadd方法
    2. 6.2. zrange方法
    3. 6.3. zrem方法
    4. 6.4. zincrby方法
    5. 6.5. zrangebyscore方法
    6. 6.6. zremrangebyrank方法
    7. 6.7. zremrangebyscore方法
    8. 6.8. zrank方法
    9. 6.9. zrevrank方法
    10. 6.10. zrangebyscore 方法
    11. 6.11. zcard方法
    12. 6.12. zcount方法

redis类型

  • redis一共分为五种基本数据类型:String、Hash、List、Set、ZSet
  • 查看redis命令帮助 help 命令名

    String类型

    String类型是包含很多种类型的特殊类型,并且是二进制安全的。比如序列化的对象进行存储,比如一张图片进行二进制存储,比如一个简单的字符串,数值等。

    set、get和del方法:

  • 设置值:set name redis
  • 取值: get name
  • 删除值: del name

使用setnx (not exist)

  • 表示如果不存在key进行设置,返回1。存在就不需要设置了,返回0
    1
    2
    127.0.0.1:6379> setnx name aa
    (integer) 0

使用setex (expired)

  • set color 10 red 设置color的有效期为10秒,10秒返回 nil (在redis中nil表示null)

使用setrange 替换字符串

  • set mail 123456@qq.com 替换字符串 setrange mail 5 abc (5表示从第几位开始替换,不包含开始位置,后面跟上替换的字符串),如下图:
    setrange结果

一次性设置或者获取多个值mset、mget 方法

  • mset k1 123 k2 abc k3 ofg
  • mget k1 k2 k3
    mset和mget

一次性获取设置getset方法

  • getset k4 abcd 先返回k4的值然后设置k4的值为 abcd
    setget

incr和decr方法

  • 对某个值进行递增和递减。incr age decr age

incrby和decrby方法

  • 对某个值指定长度的递增和递减。
  • incrby age 5 增加5
  • decrby age 6 减少6

append方法追加字符串

  • append key value
  • append name nosql 为key为name的值追加nosql

strlen方法获取key的长度

  • strleng key 返回该key的value的长度

Hash类型

Hash类型是String类型的field和value的映射表,或者说一个String集合。它特别适合存储对象,相比而言,将一个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。

设置和获取Hash方法

  • 通过 hset 设置Hash类型的值。hset user id 1 表示设置Hash的值为 user,里面有keyidvalue为1。
  • 通过 hget 获取Hash类型的值。hget user id 表示获取Hash的值为 userkeyid的值。
  • 也可以批量设置和获取值。通过hmset user id 2 name zs age 20 sex manhmget user id name age sex
    hash类型的hset和hget
    hash中的hmset和hmget

Hash类型的其他常用方法

  • hsetnx:这个和setnx类似,表示如果不存在就设置,存在就不设置。
  • hincrby:集合递增,类似于incrby
  • hexists:是否存在key,如果存在返回值,不存在返回0
  • hlen:返回hash集合里面的所有键数值。
  • hdel:删除指定hash中的字段。
  • hkeys:返回hash中的所有key。
  • hvales:返回hash中的所有value。
  • hgetall:返回hash里的所有key和value。
    hash其他命令

List类型

List类型是一个链表结构的集合,其主要功能有push、pop、获取元素等。更加具体来说,List类型是一个双链表的结构,我们可以通过相关操作在集合的头部和尾部进行操作,List的可以作为栈,也可以作为队列。

lpush和lrange方法

  • lpush从头部加入元素(栈)先进后出,返回集合中元素个数。lpush list hello 向名为list集合中添加hello
  • lrange获取栈的元素,返回集合中的元素。lrange list 0 -1 获取list 集合全部元素。
    list集合的lpush和lrange方法

rpush方法

  • rpush 方法从尾部加入元素,先进先出。rpush list2 hello 向集合list2中添加hello
  • lrang获取集合中的元素。
    List类型中的rpush方法

linsert方法

  • 插入元素。linsert num before three two
    list集合linsert

lset方法

  • 将指定下标的元素替换掉。从0开始
    list类型的lset方法

lrem方法

  • 删除元素,返回删除元素个数
    list类型的lrem方法

ltrim方法

  • 保留指定范围内的元素,截取集合
    list类型的ltrim方法

lpop方法

  • 从list的头部删除元素,并返回删除元素
    list集合的lpop方法

rpop方法

  • 从list的尾部删除元素,并返回删除元素
    List类型中的rpop方法

Set类型

Set集合是String类型的无序集合,Set是通过HashTable实现的,对集合我们可以取交集、并集、差集。

sadd方法

  • 向名称为key的set中添加元素。sadd set1 abc 也可以批量添加 sadd set1 abc bdf
  • set集合不允许添加重复元素。
    set集合的sadd方法

smembers方法

  • 查看set集合元素。
    set集合的smembers方法

srem方法

  • 删除set集合元素
    set集合的srem方法

spop方法

  • 随机返回删除的member
    set集合的spop方法

sdiff方法

  • 返回两个集合的不同元素,哪个集合在前面就以哪个集合为标准。
    set集合的sdiff方法

sdiffstore方法

  • 将返回的不同元素存储到另一个集合里。
    set集合的sdiffstore方法

sinter方法

  • 两个集合取交集。
    set集合的sinter方法

sinterstore方法

  • 返回交集结果,存储到另一个集合中
    set集合的sinterstore方法

sunion方法

  • 取并集。
    set集合的sunion方法

sunionstore方法

  • 取并集,并存储到另一个集合中
    set集合的sunionstore方法

smove方法

  • 从一个set集合移动到另一个set集合,相当于剪切复制。
    set集合的smove方法.

scard方法

  • 返回集合的元素个数,scard 集合名

sismember方法

  • 判断某元素是否为集合中的元素,返回1代表是集合中的元素,0代表不是
    set集合的sismember方法

srandmember方法

  • 随机返回一个元素
    set集合的srandmember方法

zset集合类型

set集合的升级版,集合是有序的。

zadd方法

  • 向有序集合中添加一个元素,该元素如果存在,则更新顺序。在重复插入的时候,会根据顺序属性更新。
    zset集合的zadd方法.jpg

zrange方法

  • 查看zset集合数据。
    zset集合的zadd方法.jpg

zrem方法

  • 删除名称为key的zset中的元素member
    zset集合的zadd方法.jpg

zincrby方法

  • 以指定值去自增或自减,用法和incrby类似

zrangebyscore方法

  • 找到指定区间范围的数据进行返回。
    zset集合的zadd方法.jpg

zremrangebyrank方法

  • 删除索引范围的member
    zset集合的zadd方法.jpg

zremrangebyscore方法

  • 删除指定序号,通过分数范围删除,包含头、包含尾
    zset集合的zremrangebyscore方法

zrank方法

  • 返回排序序号,从0开始
    zset集合的zrank方法

zrevrank方法

  • 返回排序索引,从大到小的顺序,从0开始
    zset集合的zrevrank方法

zrangebyscore 方法

  • 找到指定区间的数据并返回
  • 通过上图我们可以看出zrangezrangebyscore 方法的区别是,一个通过索引范围查找,一个通过分数范围查找

zcard方法

  • 返回集合中所有元素的个数
    zset集合的zcard方法

zcount方法

  • 返回集合中score在给定区间的数量
    zset集合的zcount方法
文章目录
  1. 1. redis类型
  2. 2. String类型
    1. 2.1. set、get和del方法:
    2. 2.2. 使用setnx (not exist)
    3. 2.3. 使用setex (expired)
    4. 2.4. 使用setrange 替换字符串
    5. 2.5. 一次性设置或者获取多个值mset、mget 方法
    6. 2.6. 一次性获取设置getset方法
    7. 2.7. incr和decr方法
    8. 2.8. incrby和decrby方法
    9. 2.9. append方法追加字符串
    10. 2.10. strlen方法获取key的长度
  3. 3. Hash类型
    1. 3.1. 设置和获取Hash方法
    2. 3.2. Hash类型的其他常用方法
  4. 4. List类型
    1. 4.1. lpush和lrange方法
    2. 4.2. rpush方法
    3. 4.3. linsert方法
    4. 4.4. lset方法
    5. 4.5. lrem方法
    6. 4.6. ltrim方法
    7. 4.7. lpop方法
    8. 4.8. rpop方法
  5. 5. Set类型
    1. 5.1. sadd方法
    2. 5.2. smembers方法
    3. 5.3. srem方法
    4. 5.4. spop方法
    5. 5.5. sdiff方法
    6. 5.6. sdiffstore方法
    7. 5.7. sinter方法
    8. 5.8. sinterstore方法
    9. 5.9. sunion方法
    10. 5.10. sunionstore方法
    11. 5.11. smove方法
    12. 5.12. scard方法
    13. 5.13. sismember方法
    14. 5.14. srandmember方法
  6. 6. zset集合类型
    1. 6.1. zadd方法
    2. 6.2. zrange方法
    3. 6.3. zrem方法
    4. 6.4. zincrby方法
    5. 6.5. zrangebyscore方法
    6. 6.6. zremrangebyrank方法
    7. 6.7. zremrangebyscore方法
    8. 6.8. zrank方法
    9. 6.9. zrevrank方法
    10. 6.10. zrangebyscore 方法
    11. 6.11. zcard方法
    12. 6.12. zcount方法