String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。
string类型是Redis最基本的数据类型,一个键最大能存储512MB。
Hash(哈希)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合 用于存储对象。
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素 导列表的头部(左边)或者尾部(右边)。
Set(集合)
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。
Key的常用命令
DEL key 该命令用于在 key 存在是删除 key。
DUMP key 序列化给定 key ,并返回被序列化的值。
EXISTS key 检查给定 key 是否存在。
EXPIRE key seconds 为给定 key 设置过期时间。
KEYS pattern 查找所有符合给定模式( pattern)的 key 。
MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中。
PERSIST key 移除 key 的过期时间,key 将持久保持。
TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
RANDOMKEY 从当前数据库中随机返回一个 key 。
RENAME key newkey 修改 key 的名称
RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey 。
TYPE key 返回 key 所储存的值的类型。
String的常用命令
set key value 添加键值对
get key 获取键值对
getset key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。
incr key 给值加1
incrby key n 给值加n
decr key 给值减1
decrby key n 给值减n
append key value 追加字符串
getrange key start end 截取字符串
setex key seconds value 设置键值对并设置过期时间
setnx key value 设置键值对(只有在该键不存在时才生效)
mset key1 value1 key2 value2 key3 value3
msetnx key1 value1 key2 value2 key3 value3(只要有key存在就失败)
mget key1 key2 key3 获取所有(一个或多个)给定 key 的值
setrange key offset value 用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
strlen key 返回 key 所储存的字符串值的长度
List的常用命令
lpush key v1 v2 v3 (取值和放值顺序相反)可以理解为一个栈,从左边放值
LPUSHX key value 将一个或多个值插入到已存在的列表头部
rpush key v1 v2 v3 (取值和放值顺序相同) 可以理解为一个栈,从右边 放值
RPUSHX key value 为已存在的列表添加值
lrange key start stop 从start取值到stop,如果stop为-1则全取 可以理解为一个栈,从左边取值
lpop 从左边出栈
rpop 从右边出栈
blpop key1 [key2 ] timeout 移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
blpop key1 [key2 ] timeout 移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
lindex key index 从左边根据索引取值
llen key 计算长度
lrem key count value 删除count个value的值
ltrim key start stop 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
rpoplpush 源列表 目的列表
lset key index value 将索引为index的值替换
linsert key before/after 值1 值2 在列表的元素前或者后插入元素
Set的常用命令
sadd key value1 value2
scard key 获取集合里面的元素个数
smembers key 查看当前key的所有value
sismember key value 判断value是否存在集合中
srem key value1 value2 删除集合中元素
srandmember key 某个整数(随机出几个数)
spop key 随机出栈
smove source destination member 将 member 元素从 source 集合移动到 destination 集合
sdiff key1 key2 差集
sinter key1 key2 交集
sunion key1 key2 并集
hash的常用命令
hset key field value
hget key field 获取存储在哈希表中指定字段的值
hsetnx key field value 只有在字段 field 不存在时,设置哈希表字段的值
hmset key field1 value1 field2 value2
hmget key field1 [field2] 获取所有给定字段的值
hgetall key 获取在哈希表中指定 key 的所有字段和值
hkeys key 获取所有哈希表中的字段
hlen key 获取哈希表中字段的数量
hvals key 获取到该key所有的value
HDEL key field2 [field2] 删除一个或多个哈希表字段
hexists key field 查看哈希表 key 中,指定的字段是否存在。
hincrby key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment 。
hincrbyfloat key field increment
zset(sorted set)的常用命令
ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zrange key start stop (得到该key从start到stop的value)
zrevrange key start stop (顺序与上条相反)
ZRANGEBYLEX key min max [LIMIT offset count] 通过字典区间返回有序集合的成员
zrangebyscore key min max [withscores] 得到分数从mix到max的value
zrevrangebyscore key 结束score 开始score
ZREM key member [member ...] 移除有序集合中的一个或多个成员
ZREMRANGEBYLEX key min max 移除有序集合中给定的字典区间的所有成员
ZREMRANGEBYRANK key start stop 移除有序集合中给定的排名区间的所有成员
ZREMRANGEBYSCORE key min max 移除有序集合中给定的分数区间的所有成员
zcard key 统计个数
zcount key min max (统计在分数区间内的个数)
ZLEXCOUNT key min max 在有序集合中计算指定字典区间内成员数量
zrank key value 获得下标值
zrevrank key value (顺序与上相反)
zscore key value,获得分数
ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment