Redis 五种常用数据类型及其内部编码:
- String:字符串,内部编码可以是 raw 或 int。
- List:列表,内部编码为 ziplist 或 linkedlist。
- Set:集合,内部编码为 intset 或 hashtable。
- Hash:哈希,内部编码为 ziplist 或 hashtable。
- Sorted Set:有序集合,内部编码为 skiplist 和 ziplist。
String 类型的总结和使用示例:
String 类型是 Redis 最基本的数据类型,它能存储任何类型的字符串,包括二进制数据。
常用命令:
SET key value
:设置字符串值。GET key
:获取字符串值。INCR key
:将字符串值解释为整数,并将其增加1。DECR key
:将字符串值解释为整数,并将其减少1。INCRBY key increment
:将字符串值解释为整数,并增加指定的增量。DECRBY key decrement
:将字符串值解释为整数,并减少指定的减量。SETEX key seconds value
:设置值,并为键设置过期时间(秒)。PSETEX key milliseconds value
:设置值,并为键设置过期时间(毫秒)。APPEND key value
:将值追加到已存在的字符串。STRLEN key
:获取字符串长度。MSET key1 value1 key2 value2 ...
:同时设置多个键值对。MGET key1 key2 key3 ...
:同时获取多个键的值。
示例代码(Python 使用 redis-py 客户端):
import redis
# 连接到本地Redis实例
r = redis.Redis(host='localhost', port=6379, db=0)
# 设置字符串值
r.set('key', 'value')
# 获取字符串值
value = r.get('key')
print(value.decode('utf-8')) # 输出: value
# 增加字符串值的整数表示
r.incr('counter')
# 减少字符串值的整数表示
r.decr('counter')
# 设置带有过期时间的键
r.setex('key_with_expire', 10, 'value_with_expire') # 10秒后过期
# 追加字符串
r.append('key', '_append')
# 获取字符串长度
length = r.strlen('key_with_expire')
print(length) # 输出: 字符串长度
# 同时设置多个键值对
r.mset({'key1': 'value1', 'key2': 'value2'})
# 同时获取多个键的值
values = r.mget(['key1', 'key2'])
print(values) # 输出: [b'value1', b'value2']