个人电脑做网站,室内设计公司有哪些,个人房源网,做网站原型图用什么软件目录
DEL 删除KEY
EXPIRE 设置过期时间
PERSIST 移除给定KEY的生存时间
EXPIREAT 设置过期时间-时间戳
TTL 获取剩余过期时间
PTTL 获取剩余过期时间
RENAME 重命名KEY
RENAMENX 重命名KEY
EXISTS 判断KEY是否存在
KEYS 按模式匹配KEY
SORT 排序
SORT key asc|desc…目录
DEL 删除KEY
EXPIRE 设置过期时间
PERSIST 移除给定KEY的生存时间
EXPIREAT 设置过期时间-时间戳
TTL 获取剩余过期时间
PTTL 获取剩余过期时间
RENAME 重命名KEY
RENAMENX 重命名KEY
EXISTS 判断KEY是否存在
KEYS 按模式匹配KEY
SORT 排序
SORT key asc|desc 数字排序
SORT key alpha 字符串排序
sort key limit start size 限制返回数量
DUMP 序列化给定 KEY
RESTORE 反序列化给定 KEY
OBJECT 查看KEY内部存储信息
TYPE 查值的类型 DEL 删除KEY
DEL key [key ...]删除给定的一个或多个 key
若key不存在则忽略 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set name lisi # 初始化key
OK
127.0.0.1:6379 set age 22
OK
(integer) 1
127.0.0.1:6379 lpush mylist apple banana orange pear
(integer) 4
127.0.0.1:6379 del name age mylist address # 删除key
(integer) 3 # 删除成功的key数量不存在的key忽略 时间复杂度:
对于字符串类型的 key 时间复杂度为O(N) N 为被删除的 key 的数量列表、集合、有序集合或哈希表类型的 key时间复杂度为O(M) M 为以上数据结构内的元素数量
返回
被删除 key 的数量 EXPIRE 设置过期时间
EXPIRE key seconds为给定 key 设置生存时间当 key 过期时(生存时间为 0 )它会被自动删除
如果一个命令只是修改(alter)一个带生存时间的 key 的值而不是用一个新的 key 值来代替(replace)它的话那么生存时间不会被改变对一个 key 执行 INCR 命令对一个列表进行 LPUSH 命令或者对一个哈希表执行 HSET 命令这类操作都不会修改 key 本身的生存时间 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set age 20
OK
127.0.0.1:6379 expire age 20
(integer) 1
127.0.0.1:6379 get age # 查看age值
21
127.0.0.1:6379 get age # 过20秒再查看
(nil) 对一个 key 进行改名那么改名后的 key 的生存时间和改名前一样 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 expire name 20 # 设置过期时间为20秒
(integer) 1
127.0.0.1:6379 rename name name2 # 重命名key为name2
OK
127.0.0.1:6379 keys * # 查看库中有多少key
1) name2
127.0.0.1:6379 get name2 # 查看name2信息
lisi
127.0.0.1:6379 get name2 # 过20秒再获取name2信息
(nil) 使用PERSIST 可以删除key的生存时间不删除key 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 expire name 20 # 设置过期时期
(integer) 1
127.0.0.1:6379 persist name # 对key为name执行persist命令
(integer) 1
127.0.0.1:6379 get name # 获取name信息
lisi
127.0.0.1:6379 get name # 过20秒再获取name信息
lisi 多次对同一个KEY执行 EXPIRE 命令后面的生存时间覆盖之前的生存时间 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 expire name 50
(integer) 1
127.0.0.1:6379 expire name 20
(integer) 1
127.0.0.1:6379 expire name 5
(integer) 1
127.0.0.1:6379 get name
lisi
127.0.0.1:6379 get name # 过5秒后查name信息
(nil) 时间复杂订O(1)。
返回
生成返回1失败返回0 PERSIST 移除给定KEY的生存时间
PERSIST key将这个 key 从(带生存时间 key )的过期时间删除 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 expire name 10
(integer) 1
127.0.0.1:6379 persist name
(integer) 1
127.0.0.1:6379 ttl name
(integer) -1 # name的过期时间已清除所以返回-1
127.0.0.1:6379 persist name
(integer) 0
127.0.0.1:6379 persist name1
(integer) 0 时间复杂度O(1)。
返回
当生存时间移除成功时返回 1 key 不存在或 key 没有设置生存时间返回 0 EXPIREAT 设置过期时间-时间戳
EXPIREAT key timestamp操作与EXPIRE相似
不同点EXPIREAT的过期时间单位为时间戳而EXPIRE的过期时间单位为秒 TTL 获取剩余过期时间
TTL key以秒为单位返回给定 key 的剩余生存时间(TTL, time to live) 127.0.0.1:6379 set name lisi ex 20
OK
127.0.0.1:6379 ttl name
(integer) 18
127.0.0.1:6379 ttl name
(integer) 6
127.0.0.1:6379 ttl name
(integer) -2
127.0.0.1:6379 get name
(nil) 时间复杂度O(1)
返回值
当 key 不存在时返回 -2当 key 存在但没有设置剩余生存时间时返回 -1 否则以秒为单位返回 key 的剩余生存时间 PTTL 获取剩余过期时间
PTTL key操作类似于TTL
不同点PTTL以毫秒为单位返回而TTL以秒为单位返回 RENAME 重命名KEY
RENAME key newkey将 key 改名为 newkey
当 key 不存在时返回一个错误当 newkey 已经存在时 RENAME 命令将覆盖旧值 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 rename name address # key不存在
(error) ERR no such key
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 rename name name2 # 执行rename命令
OK
127.0.0.1:6379 set address guiyang
OK
127.0.0.1:6379 keys *
1) address
2) name2
127.0.0.1:6379 rename name2 address # 执行rename命令
OK
127.0.0.1:6379 keys * # newkey已存在直接覆盖只剩下address一个key
1) address
127.0.0.1:6379 get address
lisi 时间复杂度O(1)。
返回值
改名成功时提示 OK 失败时候返回一个错误 RENAMENX 重命名KEY
RENAMENX key newkey操作与RENAME相似
不同点当且仅当 newkey 不存在时将 key 改名为 newkey EXISTS 判断KEY是否存在
EXISTS key检查给定 key 是否存在 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 exists name
(integer) 0
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 exists name
(integer) 1 时间复杂度O(1)。
返回
若 key 存在返回 1 否则返回 0 KEYS 按模式匹配KEY
KEYS pattern查找所有符合给定模式 pattern 的 key
KEYS * 匹配数据库中所有 key不推荐使用该命令KEYS h?llo 第二个字符字符匹配一个任何字符。如 匹配 hellohallo 和 hxllo 等KEYS h*llo 匹配第一个字符和最后三个字符中间匹配任意字符。如 hllo 和 heeeeello 等KEYS h[ae]llo 第二个字符为a或e。如 hello 和 hallo 但不匹配 hillo 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set hello 1
OK
127.0.0.1:6379 set hallo 2
OK
127.0.0.1:6379 set hxllo 3
OK
127.0.0.1:6379 set hillo 4
OK
127.0.0.1:6379 set habcdello 5
OK
127.0.0.1:6379 keys *
1) habcdello
2) hallo
3) hello
4) hillo
5) hxllo
127.0.0.1:6379 keys h?llo
1) hallo
2) hello
3) hillo
4) hxllo
127.0.0.1:6379 keys h*llo
1) habcdello
2) hallo
3) hello
4) hillo
5) hxllo
127.0.0.1:6379 keys h[ae]llo
1) hallo
2) hello 时间复杂度为O(N) N 为数据库中 key 的数量
返回
符合给定模式的 key 列表 SORT 排序
SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] [STORE destination]
返回或保存给定列表、集合、有序集合 KEY 中经过排序的元素排序默认以数字作为对象值被解释为双精度浮点数然后进行比较默认排序对象为数字
SORT key asc|desc 数字排序 127.0.0.1:6379 lpush mylist 2 4 3 1
(integer) 4
127.0.0.1:6379 sort mylist # 默认为 asc
1) 1
2) 2
3) 3
4) 4
127.0.0.1:6379 sort mylist desc
1) 4
2) 3
3) 2
4) 1 SORT key alpha 字符串排序 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 lpush mylist a g b e j
(integer) 5
127.0.0.1:6379 sort mylist
(error) ERR One or more scores cant be converted into double # 字符串排序报错
127.0.0.1:6379 sort mylist alpha # 添加alpha进行对字符串排序
1) a
2) b
3) e
4) g
5) j sort key limit start size 限制返回数量 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 lpush mylist a g b e j
(integer) 5
127.0.0.1:6379 sort mylist asc alpha limit 0 2
1) a
2) b start开始位置size数量 DUMP 序列化给定 KEY
DUMP key:序列化给定 key 并返回被序列化的值使用 RESTORE 命令可以将这个值反序列化为 Redis 键
它带有 64 位的校验和用于检测错误 RESTORE 在进行反序列化之前会先检查校验和值的编码格式和 RDB 文件保持一致RDB 版本会被编码在序列化值当中如果因为 Redis 的版本不同造成 RDB 格式不兼容那么 Redis 会拒绝对这个值进行反序列化操作 127.0.0.1:6379 flushdb # 清空库
OK
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 dump name # dump存在的key
\x00\x04lisi\t\x00\xd2p\xcc\xfe6\x8d\xd9\x15127.0.0.1:6379 dump age # dump不存在的key
(nil) 时间复杂度
查找给定键的复杂度为 O(1) 对键进行序列化的复杂度为 O(N*M) 其中 N 是构成 key 的 Redis 对象的数量而 M 则是这些对象的平均大小若序列化的对象是比较小的字符串那么复杂度为 O(1)
返回值
返回序列化之后的值若 key 不存在那么返回 nil RESTORE 反序列化给定 KEY
RESTORE key ttl serialized-value反序列化给定的序列化值并将它和给定的 key 关联
参数 ttl 以毫秒为单位为 key 设置生存时间如果 ttl 为 0 那么不设置生存时间反序列化前校验RDB版本的数据完整性版本不同或不完整报错 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 dump name # 序列化
\x00\x04lisi\t\x00\xd2p\xcc\xfe6\x8d\xd9\x15
127.0.0.1:6379 restore name2 0 \x00\x04lisi\t\x00\xd2p\xcc\xfe6\x8d\xd9\x15 # 反序列化
OK
127.0.0.1:6379 keys *
1) name2
2) name
127.0.0.1:6379 get name
lisi
127.0.0.1:6379 get name2
lisi
127.0.0.1:6379 restore name2 0 \x00\x04lisi\t\x00\xd2p\xcc\xfe6
(error) BUSYKEY Target key name already exists. # 序列化值不完整报错 时间复杂度
查找给定键的复杂度为 O(1) 对键进行反序列化的复杂度为 O(N*M) 其中 N 是构成 key 的 Redis 对象的数量而 M 则是这些对象的平均大小。有序集合(sorted set)的反序列化复杂度为 O(N*M*log(N)) 因为有序集合每次插入的复杂度为 O(log(N)) 。如果反序列化的对象是比较小的字符串那么复杂度为 O(1)
返回值
反序列化成功返回OK否则报错 OBJECT 查看KEY内部存储信息
OBJECT subcommand [arguments [arguments]]允许从内部察看给定 key 的 Redis 对象
通常用在除错或者了解为了节省空间而对 key 使用特殊编码的情况将Redis用作缓存程序时你也可以通过 OBJECT 命令中的信息决定 key 的驱逐策略(eviction policies)
子命令
OBJECT REFCOUNT key 返回给定 key 引用所储存的值的次数。此命令主要用于除错OBJECT ENCODING key 返回给定 key 锁储存的值所使用的内部表示(representation)OBJECT IDLETIME key 返回给定 key 自储存以来的空转时间(idle 没有被读取也没有被写入)以秒为单位 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 set age 20
OK
127.0.0.1:6379 set code 123456789901234567890
OK
127.0.0.1:6379 lpush mylist 1 2 3 4 5 b c d e f g h j
(integer) 13
127.0.0.1:6379 hset myhash name lisi age 20 address guiyang
(integer) 3
127.0.0.1:6379 sadd myset 1 2 3 a b c d e f hello world
(integer) 11
127.0.0.1:6379 zadd mysset 1 a 3 c 2 d 5 5 6 1a
(integer) 5
127.0.0.1:6379 object encoding name
embstr # 字符串
127.0.0.1:6379 object encoding age
int # 数字
127.0.0.1:6379 object encoding code
embstr # 大的数字被编码为字符串
127.0.0.1:6379 object encoding mylist
quicklist # 列表
127.0.0.1:6379 object encoding myhash
ziplist # 集合
127.0.0.1:6379 object encoding myset
hashtable # hash
127.0.0.1:6379 object encoding mysset
ziplist # 有序集合 时间复杂度为O(1)。
返回值
OBJECT REFCOUNT key 返回数字OBJECT IDLETIME key 返回数字OBJECT ENCODING key 返回相应的编码类型 TYPE 查值的类型
TYPE key返回 key 所储存的值的类型。 127.0.0.1:6379 flushdb
OK
127.0.0.1:6379 set name lisi
OK
127.0.0.1:6379 set age 20
OK
127.0.0.1:6379 set code 123456789901234567890
OK
127.0.0.1:6379 lpush mylist 1 2 3 4 5 b c d e f g h j
(integer) 13
127.0.0.1:6379 hset myhash name lisi age 20 address guiyang
(integer) 3
127.0.0.1:6379 sadd myset 1 2 3 a b c d e f hello world
(integer) 11
127.0.0.1:6379 zadd mysset 1 a 3 c 2 d 5 5 6 1a
(integer) 5
127.0.0.1:6379 type address
none
127.0.0.1:6379 type name
string # 字符串
127.0.0.1:6379 type age
string # 字符串
127.0.0.1:6379 type code
string # 字符串
127.0.0.1:6379 type mylist
list # 列表
127.0.0.1:6379 type myhash
hash # 哈希
127.0.0.1:6379 type myset
set # 集合
127.0.0.1:6379 type mysset
zset # 有序集合 时间复杂度O(1)。
返回
none (key不存在)string (字符串)list (列表)hash (哈希表)set (集合)zset (有序集) PS还有 SCAN迭代键、RANDOMKEY随机返回键、MIGRATE原子键跨实例移动、MOVE库之间移动等命令几乎用不上有需要的同学请移步到官网查阅https://redis.io。