redis的基本数据类型有五个,分别为:string 、list、hash、set、zset。
string类型:string是redis最基本的类型,一个key对应一个value。
string类型是二进制安全的,可以包含任何类型。一个redis中字符串value最多可以是512M。
string常用命令:
set [key] [value] :设置字符串key的值为value。
get [key] : 获取字符串key的值。
strlen [key] : 获取字符串key的长度。
append [key] [value] : 往字符串key后面添加字符串value。
del [key] : 删除字符串key。
incr/decr [key] : 增/减 1, key的值必须是数字 。
incrby/decrby [key] [num] : 字符串key增/减 num ,key的值必须的数字。
setrange [key] [index] [value] : 把字符串key的值从index位置开始替换成value。
getrange [key] [index1] [index2] : 获取字符串key从index1到index2的值。
setex [key] [second] [value] : 设置字符串key的值为value,并且这个字符串只存在second秒。
setnx [key] [value] : 如果字符串key存在,则不成功,如果key不存在,则设置字符串key的值为value。
mset [key1] [value1] [key2] [value2] ..... :设置多个字符串。
mget [key1] [key2] .......:获取多个字符串。
getset [key] [value] : 先获取字符串key的值,再把key的值设置为value
list类型:list列表是简单的字符串列表,按照插入顺序排序,底层实际是个链表,单值多value,可以有重复的值
list常用命令:
lpush [key] [value1] [value2] [value3] ...... :设置名称为key的list的值包含value1,value2,value3......,顺序为左边,rpush为右边。
lrange [key] [start] [stop] :获取从start开始到stop的list的值,0 -1表示全部。顺序为左边。
lpop [key] : 从左边开始出栈一个。
lindex [key] [index] : 从左边取出list中第index的值。
llen [key] : list的长度。
lrem [key] [index] [value] : 删除从index开始值为value元素。
ltrim [key] [start] [stop]:只保留[start,stop]区间的元素。
rpoplpush [key1] [key2]:key1右边出栈的元素添加到key2中。
lset [key] [index] [value] : 设置第index的值为value。
linsert [key] before/after [key中元素] [value] : 在key中的元素之前或之后添加value元素。
hash类型:是一个键值对集合。是一个string类型的field和value的映射表
特别适合用于存储对象,类似java中map。
hash常用命令:
hset [key] [field] [value] :为key中的字段赋值。
hget [key] [field] :获取key中的字段值。
hmset [key] [field] [value] [field] [value] ..... :设置多个字段值。
hmget [key] [field] [field] [field] ...... : 获取多个字段值。
hgetall [key] : 获取key的所有字段和字段值。
hexists [key] [field] : 是否存在某个字段值。
set类型:是string类型的无序不重复集合,是通过hashtable实现的
set常用命令:
sadd [key] [value] [value]...... : 添加set元素。
smembers [key]:获取所有的元素。
sismember [key] [value] : 获取元素value在集合中下标。
scard [key]:获取集合的个数。
srem [key] [index] : 删除第index的元素
sdiff : 差集。
sinter :交集。
sunion: 并集。
zset类型:也是string类型元素的集合。而且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数
redis正是通过分数来为集合中的成员进行从小到大的排序
zset的成员是唯一的,但是分数是可以重复的
zset常用命令:
zadd [key] [score] [value] [score] [value].......:添加元素。
zrange [key] [start] [stop] : 获取集合区间元素。
zrangebyscore [key] [score1] [score2] : 根据score区间获取元素。
zrangebyscore [key] [score1] [score2] limit [index1] [index2] : 在下标index1和index2之间根据score区间获取元素。
zrevrange :逆序获取元素。