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
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 分数是反着来的