Redis(Remote Dictionary Server)是一个高性能的key-value数据库,它提供了多种数据结构及其相应的操作。以下是Redis常用的数据结构及其对应操作:
1. String
字符串是Redis最基本的数据类型,常用于存储简单的键值对。
- 设置值:
SET key value
- 获取值:
GET key
- 增量/减量:
INCR key
,DECR key
- 设置过期时间:
SETEX key seconds value
- 设置多个键值对:
MSET key1 value1 key2 value2 ...
- 获取多个键值对:
MGET key1 key2 ...
2. Hash
哈希用于存储对象,它包含键值对的集合,可以高效地存储和读取对象属性。
- 设置哈希字段的值:
HSET key field value
- 获取哈希字段的值:
HGET key field
- 获取所有哈希字段和值:
HGETALL key
- 获取所有字段名:
HKEYS key
- 获取所有值:
HVALS key
- 删除一个或多个字段:
HDEL key field1 field2 ...
3. List
列表是一个有序的字符串集合,允许在列表的头部和尾部插入和移除元素。
- 从左侧插入:
LPUSH key value1 value2 ...
- 从右侧插入:
RPUSH key value1 value2 ...
- 从左侧弹出:
LPOP key
- 从右侧弹出:
RPOP key
- 获取列表长度:
LLEN key
- 获取列表中的一个范围:
LRANGE key start stop
- 移除列表中指定值的元素:
LREM key count value
4. Set
集合是一个无序的字符串集合,不允许重复元素。
- 添加元素:
SADD key member1 member2 ...
- 移除元素:
SREM key member1 member2 ...
- 检查元素是否存在:
SISMEMBER key member
- 获取所有元素:
SMEMBERS key
- 获取集合的大小:
SCARD key
- 随机移除并返回一个元素:
SPOP key
5. Sorted Set (Zset)
有序集合类似于集合,但是每个元素都会关联一个分数,用于排序。
- 添加元素及其分数:
ZADD key score1 member1 score2 member2 ...
- 获取元素的分数:
ZSCORE key member
- 获取有序集合的成员数:
ZCARD key
- 按分数范围获取成员:
ZRANGEBYSCORE key min max
- 按排名范围获取成员:
ZRANGE key start stop
- 移除指定成员:
ZREM key member1 member2 ...
6. Bitmap
位图是一种紧凑的数据结构,允许操作单个位(bit)。
- 设置或清除指定位:
SETBIT key offset value
- 获取指定位的值:
GETBIT key offset
- 统计位图中值为1的位的数量:
BITCOUNT key
7. HyperLogLog
HyperLogLog是一种用于估算基数的概率数据结构。
- 添加元素:
PFADD key element1 element2 ...
- 获取基数估算值:
PFCOUNT key
- 合并多个HyperLogLog:
PFMERGE destkey sourcekey1 sourcekey2 ...
8. Geo
地理空间数据结构用于存储和操作地理位置的数据。
- 添加地理空间元素:
GEOADD key longitude latitude member
- 获取地理位置元素:
GEOPOS key member
- 计算两个地理位置的距离:
GEODIST key member1 member2 [unit]
- 获取指定范围内的地理位置元素:
GEORADIUS key longitude latitude radius unit