最近学习Redis,做个笔记
什么是Redis?
- redis是一种非关系型数据库,数据存储在内存中,读写速度快,可以存储键和五种不同类型值的映射,
- 只能以字符串为键,值支持:字符串,列表,无序集合,有序集合,hash散列表
优点:
- 读写速度非常快,满足高性能,高并发的系统要求
- 支持分布式缓存
- 支持数据持久化
基础命令
- ping:检测redis服务是否启动,如果启动了,返回pong
- help [key]:
键相关
- del [key]:删除键
- exists [key]:检查给定的key是否存在
- expire [key] seconds:给定 key 设置过期时间,以秒计(时间单位还可以是毫秒,时间戳)
- keys pattern:查看符合的给定模式的key
- move [key] db:将key移动到给定的db库
- rename [key] [newkey]:修改key的名称
- type [key]:返回key所存储的值类型
基本数据类型
字符串
- string是最基本的数据类型
- 一个key对应一个value
- 基于二进制安全,可以存储任意类型
- 最大存储512mb
常用指令:
set [key] [value]:设置一个key和对应值
- mset [key1] value [key2] value …: 同时设置一个或多个key-value的值
- get [key]:获取key的值
- getrange [key] [start] [end]:截取一定范围内子字符串
- getset [key] value:将给定的值设定为value,并返回key的旧值
- mget [key1] [key2]…:获取一个或者多个给定key的值
- strlen [key]:获取key所存储的字符串值的长度
- incr [key]:将key中存储的数字值增1
- incrby [key] increment:将key所存储的值加上给定的增量
- decr [key]:将key中存储的数字值减1
- decr [key] increment:将key所存储的值减去给定的增量
Hash哈希
- 键值对集合(key=>value)
- 适合存储对象
- 每个 hash 可以存储 2^32 -1 键值对(40多亿)
常用指令:
-
hmset [key(对象)] [属性1] [值] [属性2] [值] … 设置一个key及其属性值
-
hget [key] [属性] :获取key的某个属性值
-
hdel [key] field1 [fidld2]:删除一个或多个hash表字段
-
hexists [key] field:查看hash表中key指定的字段是否存在
-
hgetall [key]:获取哈希表中指定key的所有字段和值
-
hincrby [key] field increment:为哈希表key中指定字段的整数值加上增量increment
-
hkeys [key]:获取所有哈希表中的字段
-
hlen [key]:获取哈希表中字段的数量
-
hset [key] field :将哈希表中key的字段fidld的值设置为value
-
hvals [key]:获取哈希表中所有的值key
List列表
- 简单的字符串列表
- 按插入顺序排序
- 可以在列表的左侧插入,也可以右侧插入
常用命令:
-
lpush [key] [值]:左插入一个值,可以插入多个
-
rpush [key] [值]:右插入一个值
-
lrange [key] [start] [end]:查看key中在start到end的值
-
lindex [key] index:通过索引获取列表中的元素
-
linsert [key] before|after value:在列表的元素前或者后面插入元素
-
llen [key]:获取列表长度
-
lpop [key]:移动并获取列表的第一个元素
-
lset [key] index value:通过索引设置列表元素的值
Set集合
- String类型
- 无序集合
- 通过hash表实现
- 增删查的复杂度都是O(1)
常用命令:
- sadd [key] [值]:给key添加一个值
- smembers [key]:查看某个key的全部值
- scard [key]:获取集合的成员数
- sdiff [key]:返回一个集合与其他集合之间的差异
- sinter [key1] [key2] :返回一个给定所有集合的交集
- sismember [key] member:判断member元素是否是集合key的成员
- spop [key]:移除并返回集合中的一个随机元素
- srandmember [key] [count]:返回集合中一个或多个随机数
- srem [key] member1 [member2]:移除集合中一个或多个成员
- sunion [key1] [key2] :返回所有集合的并集
有序集合
- String类型的集合
- 不允许重复的成员
- 每个元素都会关联一个double类型的分数
- 成员唯一,分数可以重复
常用命令:
- zadd [key] score member:添加元素到集合,元素在集合中存在则更新对应的score
- zrangebyscore [key] [start] [end]:查看范围在start到end内的值。
- zcard [key]:获取有序集合的成员数
- zacount [key] min max:计算在有序集合中指定成员的分数
- zincrby [key] increment member :有序集合中对指定成员的分数加上增量式increment
- zlexcount [key] min max:在有序集合中指定字典区间成员数量
- zrank [key] member:返回集合中指定成员的索引
- zrem [key] member1 member2…:移除集合中一个或者多个成员
- zrevrank [key] member:返回有序集合中指定成员的排名,有序集合成员数按分数值递减排序
- zscore key member :返回有序集中,成员的分数值
以上是最近在学习Redis的部分笔记,具体的更多的指令解读可以参考官方文档哦