Redis简介
Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统 ,常被用作数据库、缓存和消息中间件。它支持多种数据结构(如字符串、哈希、列表、集合等),并提供高性能、原子性操作及持久化功能。被誉为内存数据库。
Redis的五大核心数据结构
1.字符串(String)
2.哈希(Hash)
3.列表(List)
4.无序集合(Set)
5.有序集合(ZSet)
Redis是基于内存的,采用键值对存储形式。值可以是以上五种数据结构的任意一种,每一个值都拥有相对应的key。通过key我们可以找到任意一个值。
Redis的基本命令
key的相关命令
del key1 key2 //删除key1,key2。 可以单独删除,也可以一次性删除多个
keys pattern //找到符合相应模式的key
(keys * //找到所有key)(星号在前可以找到以...开头的key,在后则相反,星号之间的话的则可以找到名称中包含的key)
ttl key //查看key的剩余生存时间
expire key seconds //给key设置生存时间
exists key //检查key是否存在
persist key //移除key的过期时间,使key永不过期
type key //获取key所存储的值的类型
flushDB //清空当前数据库
String的常用命令
set key value //设置键值对
(set key value seconds //设置键值对的同时设置过期时间)
(setnx key value //只有key不存在时,才能设置)
(setex key value //只有key存在时,才能设置以此进行更新)
get key //获取键的值
mset key1 value1 key2 value2 key3 values //一次性设置多个键值对
mget key1 key2 //一次性得到多个值
incr key //将键对应的值加1(只能用于整数字符串)
decr key //将键对应的值减1(只能用于整数字符串)
append key value //向key后面追加值(key存在时,直接向原数据后追加,key不存在时,直接创建新的key并赋值为value)
strlen key //获取key对应的值的长度
Hash的常用命令
field:字段,对应独立hash中的key
value:值,对应独立hash中的value
hset key field value //设置哈希字段值
hget key field //获取对应的哈希字段值(不能写成 hget key来获取key对应的整个哈希,会报错)
hmset key field1 value1 field2 value2 //批量设置(新版的也可以用hset来进行批量设置了)
hmget key field1 field2 //批量获取字段值
hget all //获取所有字段和值
hkeys key //获取key对应的所有字段
hvals key //获取key对应的所有值
hlen key //获取key对应的字段数量
hexists key field //检查可以key对应的字段是否存在
hdel key field //删除key对应的字段
hincrby key field nums //key对应的字段值加nums(,nums可以是负数只适用于整数类型的字段值)
List
lpush key value1 value2 //从key对应的列表的左侧插入(可以一次性插入多个值)
rpush key value1 value2 //从key对应的列表的右侧插入
lpop key //从最左侧移除一个key对应的列表中的值,并返回被移除的值
rpop key //从最右侧移除一个key对应的列表中的值,并返回被移除的值
lrange key start last //获取key对应的列表中索引从start到last的值 (索引从0开始)
(lrange key 0 -1 //表示获取列表中所有的值)
lindex key index //获取key对应的列表中索引为index的值
lrem key count value //从key对应的列表的左边删除count个对应的value(count>0的话,从左边删除count个对应的value;count<0的话从右边删除|count|个对应的value;count=0的话,删除所有的对应的value)
llen key //获取key对应的列表的长度
Set
sadd key member1 member2 //向key对应的集合中添加值(可以一次性添加多个值)
srem key member1 member2 //删除key对应的集合中的值
smembers key //获取key对应的集合中的所有值
sismember key member //检查key对应的集合中值是否存在
scard key //获取key对应的集合大小
sinter key1 key2 //获取交集
sunion key1 key2 //获取并集
sdiff key1 key2 //获取差集
srandmember key [count] //随机获取key对应的集合中count个元素
ZSet
score: 对应权重,分数,决定了成员的顺序和位置
zadd key score1 member1 score2 member2 //向key对应的有序集合中添加成员(可以一次性添加多个)
zrem key menmber1 me,ber2 //删除key对应的有序集合中的成员
zscore key member //获取key对应的有序集合中的成员中的分数
zrank key member //获取成员在key对应的有序集合中升序时的排名
zrevrank key member //获取成员在key对应的有序集合中降序序时的排名
zrange key start stop [WITHSCORES] //按排名范围获取
zrevrange key start stop [WITHSCORES] //按排名范围获取(降序)
zrangebyscore key min max [WITHSCORES] //按分数范围获取
zcard key //获取成员数量
ZCOUNT key min max //统计分数范围内的成员
ZINCRBY key increment member //向key对应的有序集合中的member增加increment分