Redis是一种高性能的键值数据库,它支持五种数据类型:字符串(string)、列表(list)、集合(set)、有序集合(sorted set)和哈希(hash)。每种数据类型都有一些特定的操作命令,可以对数据进行增删改查等操作。本文将介绍Redis的五种数据类型及其常用命令,帮助你更好地使用Redis。
字符串(string)
字符串是Redis最基本的数据类型,它可以存储任何形式的数据,比如文本、数字、二进制等。字符串的最大长度是512MB。字符串的常用命令有:
1.SET key value:设置一个键值对,如果键已存在,则覆盖原来的值。
2.GET key:获取一个键对应的值,如果键不存在,则返回nil。
3.DEL key:删除一个键值对,如果键不存在,则忽略。
4.INCR key:将一个键对应的值增加1,如果键不存在,则设置为0后再增加1,如果值不是数字,则返回错误。
5.DECR key:将一个键对应的值减少1,如果键不存在,则设置为0后再减少1,如果值不是数字,则返回错误。
6.APPEND key value:将一个值追加到一个键对应的值后面,如果键不存在,则相当于SET key value。
7.STRLEN key:获取一个键对应的值的长度,如果键不存在,则返回0。
列表是一种有序的字符串集合,它可以存储多个字符串元素,并且可以在两端进行插入或删除操作。列表的最大长度是232-1个元素。列表的常用命令有:
1.LPUSH key value [value ...]:将一个或多个值从左侧插入到一个列表中,如果键不存在,则创建一个空列表后再插入。
2.RPUSH key value [value ...]:将一个或多个值从右侧插入到一个列表中,如果键不存在,则创建一个空列表后再插入。
3.LPOP key:从左侧弹出一个列表中的第一个元素,并返回它,如果列表为空或者键不存在,则返回nil。
4.RPOP key:从右侧弹出一个列表中的最后一个元素,并返回它,如果列表为空或者键不存在,则返回nil。
5.LINDEX key index:获取一个列表中指定索引位置的元素,索引从0开始,负数表示从右往左数,如果索引超出范围或者键不存在,则返回nil。
6.LLEN key:获取一个列表中元素的个数,如果键不存在,则返回0。
7.LRANGE key start stop:获取一个列表中指定范围内的元素,start和stop都是索引位置,包含在结果中,负数表示从右往左数,超出范围的索引会被自动调整。
集合是一种无序的字符串集合,它可以存储多个不重复的字符串元素,并且可以进行交并差等集合运算。集合的最大长度是232-1个元素。集合的常用命令有:
1.SADD key member [member ...]:将一个或多个元素添加到一个集合中,如果元素已存在,则忽略,如果键不存在,则创建一个空集合后再添加。
2.SREM key member [member ...]:将一个或多个元素从一个集合中移除,如果元素不存在,则忽略,如果键不存在,则返回0。
3.SISMEMBER key member:判断一个元素是否属于一个集合,如果是,则返回1,如果不是或者键不存在,则返回0。
4.SCARD key:获取一个集合中元素的个数,如果键不存在,则返回0。
5.SMEMBERS key:获取一个集合中所有的元素,如果键不存在,则返回空集合。
6.SINTER key [key ...]:计算多个集合的交集,并返回结果,如果其中有一个键不存在,则返回空集合。
7.SUNION key [key ...]:计算多个集合的并集,并返回结果,如果所有的键都不存在,则返回空集合。
8.SDIFF key [key ...]:计算多个集合的差集,并返回结果,即第一个集合中存在而其他集合中不存在的元素,如果第一个键不存在,则返回空集合。
有序集合(sorted set)
有序集合是一种有序的字符串集合,它可以存储多个不重复的字符串元素,并且每个元素都有一个分数(score)来表示其在集合中的排序。有序集合的最大长度是232-1个元素。有序集合的常用命令有:
1.ZADD key score member [score member ...]:将一个或多个元素及其分数添加到一个有序集合中,如果元素已存在,则更新其分数,如果键不存在,则创建一个空有序集合后再添加。
2.ZREM key member [member ...]:将一个或多个元素从一个有序集合中移除,如果元素不存在,则忽略,如果键不存在,则返回0。
3.ZSCORE key member:获取一个元素在一个有序集合中的分数,如果元素不存在或者键不存在,则返回nil。
4.ZCARD key:获取一个有序集合中元素的个数,如果键不存在,则返回0。