作者处于学习阶段,刚刚完成redis的学习,作为学生,我会用更通俗的说法,来叙述自己对redis的了解。愿各位大佬看到有见解错误的地方和叙述不好的地方,能够帮忙纠正。来帮助大家更加深入的了解redis。
一、key相关命令
keys * 查看所有的key exists key 判断某个key是否存在 type key 查看key的类型 del key 删除指定的key数据,key和value全部删除 expire key seconds 为指定的key设置过期期间,过期时间为seconds秒 ttl key 查看给定的key设置过期时间,正数:过期剩余时间,-1:永不过期,-2:已过期 dbsize 查看key的数量 flushdb 清空当前库 flushall 清空所有库
二、 字符串(String)
1.简介
字符串是最基本的 Redis 值。Redis 字符串是二进制安全的,这意味着 Redis 字符串可以包含任何类型的数据,例如 JPEG 图像或序列化的 Ruby 对象。与我们java中的String所存的类型类似,其中value最多存512MB
2.常用命令
set 添加键值对(当key不存在时,直接添加。存在时,将原有值替换) get 根据key查询对应value值 append 将value加入key相匹配的value值末尾 strlen key对应value的长度 setnx 当key不存时,添加该键值对 incr 将key中存储的数字值加1,只能对数字操作,如果为空则认为是0+1 decr 将key中存储的数字值减1,只能对数字操作,如果为空则认为是0-1
mset ...... 可以一次性设置多个键值对 mget ... 可以一次性获取多个value值 msetnx 当key都不存在时,才会设置多个键值对
三、列表List
1.简介
Redis 列表是简单的字符串列表,按插入顺序排序。可以将元素添加到 Redis 列表中,将新元素推送到列表的头部(左侧)或尾部(右侧)。
lpush命令在头部插入一个新元素,而 RPUSH在尾部插入一个新元素。当对空键执行此操作之一时,将创建一个新列表。同样,如果列表操作将清空列表,则从键空间中删除键。
列表的最大长度为 2^32 - 1 个元素(4294967295,每个列表超过 40 亿个元素)。
Redis Lists 的主要特点是支持恒定时间插入和删除靠近头部和尾部的元素,即使插入了数百万个元素。访问列表的极端附近的元素非常快,但如果您尝试访问一个非常大的列表的中间,则速度很慢,因为这是一个 O(n) 操作。
2.常用命令
lpush/rpush ....... 从左边/右边插入一个或多个值 lpop/rpop 从左边/右边吐出一个值,当列表空时,则消失 rpoplpush 从 列表右边吐出一个值,插入到 列表左边 lrange 从左边第(start+1)个到右边第(end+1)个结束,当start=0,end=-1时,表示所有 lindex 从左往右数第(index+1)对应的元素 llen 获取列表长度 linsert before 在 的后面插入 lrem 从左边删除n个value(从左到右)
lset 将列表key下标为index的值替换成value
四、集合Set
1.简介
Redis Set 是字符串的无序集合。可以在 O(1) 中添加、删除和测试成员的存在(无论集合中包含的元素数量如何,都是恒定的时间)。
Redis Set 具有不允许重复成员的理想属性。多次添加相同的元素将导致集合具有该元素的单个副本。实际上,这意味着添加成员不需要检查是否存在然后添加操作。
Redis Sets 的一个非常有趣的地方是,它们支持许多服务器端命令来从现有集合开始计算集合,因此您可以在很短的时间内进行集合的并集、交集、差集。
集合中的最大成员数为 2^32 - 1(4294967295,每组超过 40 亿个成员)。
sadd ...... 将一个或多个value元素加入到集合Key中,已经存在的value会被忽略 smembers 取出该集合的所有值 sismember 判断集合中是否为含有 值,有返回1,没有返回0 scard 返回该集合的元素个数 srem .... 删除集合中的一个或多个元素 spop 随机从该集合中吐出一个值。 srandmember 随机从该集合中取出n个值。不会从集合中删除 smove 将source集合中的值value移动到destination集合中 sinter 返回两个集合的交集元素 sunion 返回两个集合的并集元素 sdiff key1中与key2不同的元素
五、 哈希(Hash)
1.简介
哈希是字符串字段和字符串值之间的映射,因此它们是表示对象的完美数据类型(例如,具有许多字段的用户,如姓名、姓氏、年龄等),类似于JAVA中的Map
具有几个字段(其中几个字段意味着最多一百个左右)的哈希以占用非常少的空间的方式存储,因此您可以在一个小型 Redis 实例中存储数百万个对象。
虽然哈希主要用于表示对象,但它们能够存储许多元素,因此您也可以将哈希用于许多其他任务。
每个散列最多可以存储 2^32 - 1 个字段值对(超过 40 亿个)。
hset 给集合中的 键赋值 hget 从集合 取出 hmset ... 为集合中多个 键复制 hexists 查看集合中,field 是否存在 hkeys 遍历出集合中所有的field hvals 遍历出集合中所有的value hincrby 为集合中的field 的值加上增量increment hsetnx 将集合中的field的值设置为 value ,并且只有当field不存在时
六、有序集合(sorted set)
1.简介
sorted set与set集合类似,是字符串的非重复集合。不同之处在于,Sorted Set 的每个成员都与一个分数相关联,用于保持sorted set的顺序,从最小到最大的分数。虽然成员是唯一的,但分数可能会重复。
您可以以非常快速的方式添加、删除或更新元素(时间与元素数量的对数成正比)。由于元素是按顺序存储的,而不是事后排序的,因此您还可以通过分数或排名(位置)以非常快速的方式获取范围。访问 Sorted Set 的中间也非常快,因此您可以将 Sorted Sets 用作非重复元素的智能列表,您可以在其中快速访问所需的一切:元素按顺序、快速存在测试、快速访问中间元素!
2.常用命令
zadd
… 将一个或多个 member 元素及其 score 值加入到有序集 key 当中 zrange [WITHSCORES] 返回有序集 key 中,下标在
带WITHSCORES,可以让分数一起和值返回到结果集之间的元素 zrangebyscore key minmax [withscores] [limit offset count]
返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
zrevrangebyscore key maxmin [withscores] [limit offset count] 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从大到小)次序排列。 zincrby 为元素的score加上增量 zrem 删除该集合下,指定值的元素 zcount 统计该集合,分数区间内的元素个数
zrank 返回该值在集合中的排名,从0开始



