Redis基础
启动服务
开启服务
redis-server
运行redis
redis-cli
十大数据类型
1-5为基础类型,6-10为特殊类型
| 序号 | 数据类型/功能 | 描述 | 示例命令 |
|---|---|---|---|
| 1 | String | 最基础的数据类型,用于存储字符串或数字 | SET name "AZ" |
| 2 | List | 列表,用于存储多个有序的字符串 | LPUSH list01 "AZ" |
| 3 | Set | 集合,用于存储多个无序且不重复的字符串 | SADD set01 "AZ" |
| 4 | Hash | 散列,用于存储多个键值对 | HSET hash01 field "AZ" |
| 5 | Zset | 有序集合,用于存储多个带分数的字符串,按分数排序 | ZADD zset01 score "AZ" |
| 6 | Bitmaps | 位图,用于存储大量开关状态信息,节省空间 | SETBIT key offset value |
| 7 | HyperLogLog | 用于估计一个集合中不重复元素的数量,占用空间极小 | PFADD hll_key element |
| 8 | Geospatial | 地理位置,用于存储和查询地理空间信息 | GEOADD location_key longitude latitude name |
| 9 | Streams | Redis 5.0引入的数据流,用于消息传递 | XADD stream_key * field value |
| 10 | Modules | Redis模块,支持扩展Redis的功能,如RedisSearch、RedisBloom等 | 安装并使用相应的模块 |
String字符串
# 添加字符串
SET mystring "Hello, Redis!"
# 获取字符串
GET mystring
# 追加字符串
APPEND mystring "Hello,world!"
# 删除字符串
DEL mystring
List列表
# 添加数据
Lpush mylist value1
# 批量添加 LPUSH从左 RPUSH从右开始
RPUSH mylist value2 value3 value4
# 查看mylist的0索引到-1索引的值
LRANGE mylist 0 -1
# 修改指定索引 LSET从左数2索引
LSET mylist 2 newValue
# 删除一个值为value1数据
LREM mylist 1 value1
# 删除所有值为value1数据
LREM mylist 0 value1
# 删除mylist
DEL mylist
Set集合
# 添加一个或多个set数据
SADD myset value1
SADD myset value2 value3
# 移除指定元素
SREM myset value2
# 随机移除指定元素并返回
SPOP myset
# 查询集合所有元素
SMEMBERS myset
# 检查一个元素是否是集合的成员
SISMEMBER myset value1
# 返回集合元素数量
SCARD myset
# 随机返回集合中的一个或多个元素,但不移除它们
SRANDMEMBER myset
SRANDMEMBER myset 2 # 返回两个随机元素
Hash哈希
# 添加键name 值"AZURE" 如果myhash不存在则自动创建
HSET myhash name "AZURE"
# 查询键为name的值
HGET myhash name
# 查询所有键值对
HGETALL myhash
# 检查字段是否存在
HEXISTS myhash name
# 获取哈希中所有键值对数量
HLEN myhash
# 获取所有的键
HKEYS myhash
# 获取所有的值
HVALS myhash
# 删除字段
HDEL myhash name
Zset有序集合
# 添加元素 批量添加
ZADD myzset 1 "one"
ZADD myzset 2 "two" 3 "three"
# 删除一个元素
ZREM myzset "one"
# 删除分数在某个范围内的所有元素
ZREMRANGEBYSCORE myzset 2 3
# 删除排名在某个范围内的所有元素(注意排名是从0开始的)
ZREMRANGEBYRANK myzset 0 1
# 将"one"元素的分数更新为10
ZADD myzset 10 "one"
# 返回分数从低到高排序的所有元素
ZRANGE myzset 0 -1
Redis对 key 的操作
| 指令 | 说明 |
|---|---|
| DEL key | 删除该键 |
| DUMP key | 序列化key,并返回序列化值 |
| EXISTS key | 检查键值是否存在 |
| EXPIREAT key timestamp | 设置键的过期时间,默认单位秒 |
| PEXPIRE key milliseconds | 设置过期时间,单位毫秒 |
| KEYS pattern | 查找所有符合给定模式(pattern)的key,*:任意,?:单个匹配字符,[]:通配括号内的某个字符 |
| MOVE key db | 将key从当前数据库移动到db数据库 |
| PTTL key | 剩余过期时间(毫秒) |
| TTL key | 剩余过期时间(秒) |
| RANDOMKEY | 从库中随机返回一个值 |
| RENAME key newkey | 将key重命名为newkey |
| TYPE key | 查看键的数据类型 |