Not Only SQL~02.Redis的常用命令和数据类型
本文是上一篇文章的后续,详情点击该链接~
Redis常用命令
ping | 测试 redis 是否链接 如果已链接返回 PONG |
echo value | 测试 redis 是否链接 如果已链接返回 echo 命令后给定的值 |
keys* | 返回所有的 key 可以加*通配 |
exists key | 判断 string 类型一个 key 是否存在 如果存在返回 1 否则返回 0 |
expire key time(s) | 设置一个 key 的过期时间 单位秒。时间到达后会删除 key 及 value |
ttl key | 查询已设置过期时间的 key 的剩余时间 如果返回-2 表示该键值对已经被删除 |
persist | 移除给定 key 的过期时间 |
selectd bindex | 选择数据库(0-15) |
move key dbIndex | 将当前数据库中的 key 转移到其他数据库中 |
dbsize | 返回当前数据库中的 key 的数目 |
info | 获取服务器的信息和统计 |
flushdb | 删除当前选择的数据库中的 key |
flushall | 删除所有数据库中的所有 key |
quit | 退出连接 |
Redis 数据类型
然后我们现在可以开始操作了~
String(字符串)
Redis 字符串是字节序列。Redis 字符串是二进制安全的,这意味着他们有一个已知的长 度没有任何特殊字符终止,所以你可以存储任何东西,512 兆为上限
get,set
set name的意思就是给name这个键赋予字符串值"alvin",然后get就是根据键获取相应的值。
这些呢,都是字符串操作的最基本的命令,我们再看看其他常用命令还有哪些~
incr | 让当前键值以 1 的数量递增,并返回递增后的值 |
incrby | 可以指定参数一次增加的数值,并返回递增后的值 |
mget/mset | 作用与 get/set 相似,不过 mget/mset 可以同时获得/设置多个键的键值 |
decr | 让当前键值以 1 的数量递减 并返回递减后的值 |
decrby | 可以指定参数一次递减的数值,并返回递减后的值 |
incrbyfloat | 可以递增一个双精度浮点数 |
append | 作用是向键值的末尾追加 value。如果键不存在则将该键的值设置为 value。返 回值是追加后字符串的总长度。 |
del | 根据 key 来删除 value |
flushdb | 清除当前库的所有数据 |
刚才呢,我已经用表格把常用的字符串操作命令,给总结了一下。然后现在我们开始操作看看~
incr操作
incrby 操作
decr / decrby 操作
incrbyfloat操作
append操作
mget/mset 操作
del 和 flushdb 操作
Hash表
Redis 的哈希是键值对的集合。Redis 的哈希值是字符串字段和字符串值之间的映射, 因此它们被用来表示对象
hset | 存储一个哈希键值对的集合 |
hget | 获取一个哈希键的值 |
hmset | 存储一个或多个哈希是键值对的集合 |
hmget | 获取多个指定的键的值 |
hexists | 判断哈希表中的字段名是否存在 如果存在返回 1 否则返回 0 |
hdel | 删除一个或多个字段 |
hgetall | 存储一个哈希键值对的集合 |
hset | 获取一个哈希是键值对的集合 |
hvals | 只返回字段值 |
hkeys | 只返回字段名 |
hlen | 返回 key 的 hash 的元素个数 |
话不多说,直接实操
List(链表)
Redis 的链表是简单的字符串列表,排序插入顺序。您可以添加元素到 Redis 的列表的 头部或尾部
lpush | key value 向链表左侧添加 |
rpush | key value 向链表右侧添加 |
lpop | key 从左边移出一个元素 |
rpop | key 从右边移出一个元素 |
llenkey | 返回链表中元素的个数 相当于关系型数据库中 selectcount(*) |
lrange | 也支持负索引 lrangenn-2-1 如 -1 表示最右边第一个元素 -2 表示最右边第二 个元素,依次类推。 |
lrange key start end | lrange 命令将返回索引从 start 到 stop 之间的所有元素。Redis 的列 表起始索引为 0。 |
lindex key indexnumber | 如果要将列表类型当做数组来用,lindex 命令是必不可少的。 lindex 命令用来返回指定索引的元素,索引从 0 开始 如果是负数表示从右边开始计算的索引,最右边元素的索引是-1。 |
Lset key indexnumber value | 是另一个通过索引操作列表的命令,它会将索引为 index 的元素赋值为 value。 |
话不多说,实操吧...
lpush / rpush / lrange 实操
lpop / rpop 实操
lindex / Lset 实操
sadd key value | 添加一个 string 元素到,key 对应的 set 集合中,成功返回 1,如果元素已经 在集合中返回 0 |
scard key | 返回 set 的元素个数,如果 set 是空或者 key 不存在返回 0 |
smembers key | 返回 key 对应 set 的所有元素,结果是无序的 |
sismember key value | 判断 value 是否在 set 中,存在返回 1,0 表示不存在或者 key 不存 在 |
srem key value | 从 key 对应 set 中移除给定元素,成功返回 1,如果 value 在集合中不存 在或者 key 不存在返回 0 |
实操
SortedSet(有序集合)zset
Redis 的有序集合类似于 Redis 的集合,字符串不重复的集合。
zadd key score value | 将一个或多个 value 及其 socre 加入到 set 中 |
zrange key start end | 0 和-1 表示从索引为 0 的元素到最后一个元素(同 LRANGE 命令相 似) |
zrange key 0-1 withscores | 也可以连同 score 一块输出,使用 WITHSCORES 参数 |
zremrangebyscore key start end | 可用于范围删除操作 |