key命令
-
注:Redis是一个key-value的键值对的内存数据库。最基本的一些操作就是对这些key的操作。
-
DEL
-
删除Key, del key1 key2
-
EXISTS
-
检查key是否存在, EXISTS key
-
EXPIRE
-
设置或者更新到期时间,到期后自动清除,单位秒 设置为-1表示永不过期。 EXPIRE key
-
PERSIST
-
移除过期时间,key永久保存。其实就是过期时间设置为-1,永不过期
-
PTTL
-
以毫秒为单位返回key剩余的过期时间。
-
TTL
-
以秒为单位,返回给定key的剩余生存时间。
-
EXPIREAT
-
设置key的过期时间,不过设置的是时间戳。
-
PEXPIRE
-
设置key的过期时间,不过是毫秒单位。
-
PEXPIREAT
-
设置key的过期时间,不过是时间戳,以毫秒统计。
-
KEYS pattern
-
查找匹配给定模式pattern的所有key。
-
KEYS * 匹配数据库中所有 key 。
-
KEYS h?llo 匹配 hello , hallo 和 hxllo 等。
-
KEYS h*llo 匹配 hllo 和 heeeeello 等。
-
KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。
-
特殊符号用 隔开
-
MOVE key db
-
把指定的key移动到数据库db中。(默认的redis有16个数据库)
-
SELECT index
-
切换数据库(redis默认16个数据库 编号从0开始)
-
RANDOMKEY
-
随机获取一个key
-
RENAME key newkey
-
修改key名字。如果newkey已经存在,则删除newkey。
-
RENAMENX key newkey
-
仅当newkey不存在时,将key改名为newkey。
-
TYPE key
-
返回key的类型
string命令
-
GET
-
获取
-
MGET
-
获取多个
-
SET
-
设置(新增 修改)
-
MSET
-
设置一个
-
GETRANGE (加下标)
-
获取范围段
-
比如一个value是 qwertyuiop
-
正序 倒序两种情况。
-
getrange key 0 4 (qwert)
-
getrange key -1 -5 (yuiop)
-
getrange key 0 -1 (qwertyuiop)
-
-
q w e r t y u i o p
-
0 1 2 3 4 5 6 7 8 9
-
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
-
-
GETSET (获取当前key值设置新key值)
-
设置一个值,然后在返回原来老值。
-
SETEX key seconds value
-
设置一个key,并制定他的过期时间,单位秒
-
PSETEX key milliseconds value
-
设置一个key,并制定他的过期时间,单位毫秒
-
SETNX
-
只有在KEY不存在时设置value。就是新增一个(不包含更新)。
-
MSETNX
-
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
-
APPEND key value 添加到value尾部
-
追加到末尾。
-
STRLEN key
-
长度
-
INCR key 把value自增 类似i++
-
把key中的数字值增加1
-
INCRBY key increment 设置步长, incrby age 10 把age加10
-
将key所存储的值增加一定数量。
-
INCRBYFLOAT key increment
-
增加一定的浮点数。
-
DECR key 自减
-
将key存储数字键1
-
DECRBY key decrement 自减设置步长
-
减去给你的减量值
事务
事务不具有原子性。单条命令行具有原子性。
redis事物简介(锁事物)
redis中把事务把所有命令序列化 放入队列缓存 然后按顺序执行,事务执行过程中不会接受其他命令执行。
事务执行过程
开始事物
命令队列
执行事务
MULTI
标记一个事务块的开始。
事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。
EXEC
执行所有事务块内的命令。
假如某个(或某些) key 正处于 WATCH 命令的监视之下,且事务块中有和这个(或这些) key 相关的命令,那么 EXEC 命令只在这个(或这些) key 没有被其他命令所改动的情况下执行并生效,否则该事务被打断(abort)。(所有受监控的键都没有被修改时,才会执行事务)
编译错误 一个队列内都不执行 ; 运行错误 错误的命令不执行
等等补充