string(字符串)

string是redis最基本的类型,你可以理解成Memcached一模一样的类型,一个key对应一个value
string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化对象。
string类型是reids 最基本的数据雷兄,一个redis中字符串value最多可以是512m

hash(哈希,类似java中的map)

hash(哈希)
Redis hash是一个键值对集合
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象
类似java中的Map<String,Object>

list(列表)

Redis列表可以是简单的字符串列表,按照插入的顺序排序,你可以添加一个元素导致列表的头部(左边)或者尾部(右边)
它的底层实际上是一个链表

set(集合)

Redis的Set是string类型的无序列表,它是通过HashTable实现的

zset(sorted set:有序集合)

Redis zset和set一样也是string类型元素的集合,且不允许重复的成员
不同的是,每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大排序,zset成员是唯一的,但是分数(score)却是可以重复的。

常用的语法

1、Redis 键(key)

  • keys * :列出所有的key
  • exists key的名字:判断某个key是否存在
  • move key db :把key从当前库移动到指定的db
  • expire key 秒钟:为给定的key设置过期的时间
  • ttl key:查看当前key还有多少秒过期,-1表示永不过期,-2表示已经过期
  • type key :查看这个key是什么类型的数据

2、Redis字符串(String)

  • set/get/del/append/strlen:存放/获取/追加/获取长度
  • Incr/decr/incrby/decrby:加一/减一/增加指定数值/减少指定长度
  • getrange/setrange:getrange key a b 获取指定范围内的值。类似于between…and的关系,如果是0 -1 表示获取全部
    setrange从指定位置开始,替换成制定的值,格式是:setrange key 具体值
  • setex(set with expire)键秒值/setnx(set if not exitst)
    setex:设置带过期的key,动态设置,setex 键 秒值 真实值
    setnx:只有在key不存在的时候设置key的值
  • mset/mget/msetnx:同时设置一个或多个key-value对,mget获取所有(一个或多个)给定的key的值,msetnx同时设置一个或多个key-value对,当且仅当所有给定的key都不存在(如果有一个存在,就设置不成功)

  • getset(先get再set):给给定的key值设置为value,并返回key的旧值。简单一句话,先get然后立即set

redis hash value的最大长度 redis hash的value类型_string类

3、reids列表(List)

  • lpush/rpush/lrange:从左边放入/从右边放入/从左边读取指定范围的值

  • lpop/rpop 从左边弹出/从右边弹出

    -lindex:按照索引下标获取元素(从上到下)
  • llen:获取长度
  • lrem key 删除N个value,从left往right删除2个值等于v1的元素,返回值为实际删除的数量
    lrem list01 0表示删除全部给定的值。
  • ltrim key 开始index 结束index 截取指定范围的值,然后赋给key
  • rpoplpush 源列表 目的列表 移除列表最后一个元素,并将该元素添加到另一个列表并返回
  • lset key index value:设置list指定位置上的value
  • linsert key before/after 值1 值2 在list某个已有值的前后再添加具体值、

redis集合(set)

  • sadd/smembers/sismember
  • scard,获取集合里面的元素个数
  • srem key value 删除集合中元素
  • srandmember key 某个整数(随机出几个数) :从set中随即取出几个,如果超过最大数就全部取出,如果是负数,就表示随即出几个,但是包含重复的值
  • spop key 随机出栈
  • smove key1 key2 在key1里某个值 作用是将key1里的某个值赋给key2
  • 数学集合类
  • 差集:sdiff :在第一个set里面而不在后面任何一个set里面的项
  • 交集:sinter :两个set中的项的集合
  • 并集:sunion: 同时出现在两个set中的项

redis哈希(Hash)

  • hset/hget/hmset/hmget/hgetall/hdel
  • hlen
  • hexists key 在key里面的某个值的key
  • hkeys/hvals
  • hincrby/hincrbyfloat
  • hsetnx

redis有序集合Zset

在set基础上,加一个score值
set是 k1 v1 k2 v2 k3 v3
Zset是 k1 score1 v1 k2 score2 v2

  • zadd/zrange(withscores)
  • zrangebyscore key 开始score 结束score
  • withscores
  • ( 不包含
  • limit 作用是返回限制, limit 开始下标步 多少步
  • zrem key 某score下对应的value值,作用是删除元素
  • zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数
  • zcard :获取集合中元素个数
  • zcount :获取分数区间内元素个数,zcount key 开始分数区间 结束分数区间
  • zrank: 获取value在zset中的下标位置
  • zscore:按照值获得对应的分数
  • zrevrank key values值,作用是逆序获得下标值:正序、逆序获得下标索引值
  • zrevrange
  • zrevrangebyscore key 结束score 开始score:zrevrangebyscore zset1 90 60 withscores 分数是反着来的