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 | 查看键的数据类型 |