IP:192.168.225.128
环境:centos7php
keys * 查询全部的键,会遍历全部的键值,复杂度O(n)java
dbsize 查询键总数,直接获取redis内置的键总数变量,复杂度O(1)python
exists key 存在返回1,不存在返回0redis
del key [key...] 返回结果为成功删除键的个数数据库
expire key seconds 当超过过时时间,会自动删除,key在seconds秒后过时
expireat key timestamp 键在秒级时间戳timestamp后过时
pexpire key milliseconds 当超过过时时间,会自动删除,key在milliseconds毫秒后过时
pexpireat key milliseconds-timestamp key在豪秒级时间戳timestamp后过时
ttl 命令能够查看键hello的剩余过时时间,单位:秒(>0剩余过时时间;-1没设置过时时间;-2键不存在)
pttl是毫秒centos
192.168.225.129:6379> expire k2 100 (integer) 1 192.168.225.129:6379> ttl k2 (integer) 91 192.168.225.129:6379> ttl ma (integer) -1 192.168.225.129:6379>
type key 若是键hello是字符串类型,则返回string;若是键不存在,则返回none服务器
rename key newkey
renamenx key newkey 只有newkey不存在时才会被覆盖数据结构
randomkeyapp
dump key
Restore key ttl value
Dump+restore能够实如今不一样的redis实例之间进行数据迁移的功能,整个迁移的过程分为两步;
1)在源redis上,dump命令会将键值序列化,格式采用的是RDB格式
2)在目标redis上,restore命令将上面序列化的值进行复原,其中ttl参数表明过时时间,ttl=0表明没有过时时间
例子:dom
源redis 192.168.225.129:6379> get redis "world" 192.168.225.129:6379> dump redis "\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8" 目标redis 192.168.225.128:6379> get redis (nil) 192.168.225.128:6379> restore redis 0 "\x00\x05world\a\x00\xe6\xe3\xe9w\xd8c\xa7\xd8" OK 192.168.225.128:6379> get redis "world"
migrate其实是吧dump、restore、del 3个命令进行组合,从而简化了操做步骤。
Migrate host port key [ key ......] destination-db timeout [replace]
源redis中执行
192.168.225.129:6379> migrate 192.168.225.128 6379 flower 0 1000 replace
(将键flower迁移至目标192.168.225.128:6379的库0中,超时时间为1000毫秒,replace表示目标库若是存在键flower,则覆盖)
keys pattern
例如:keys h , keys [r,l]edis ,keys 等等
scan 它能够有效的解决keys命令存在的阻塞问题,scan每次的额复杂度是O(1)
select dbIndex
默认16个数据库:0-15,进入redis后默认是0库。不建议使用多个数据库
用于清除数据库,flushdb只清除当前数据库,flushall清除全部数据库。
set key value [ex] [px] [nx|xx] ex为键值设置秒级过时时间 px为键值设置毫秒级过时时间 nx键必须不存在,才能够设置成功,用于添加 xx与nx相反,键必须存在,才能够设置成功,用于更新 setnx、setex 与上面的nx、ex做用相同
get key 不存在则返回nil
mset key value [key value ......]
mset a 1 b 2 c 3 d 4
mget key [key ......]
incr key
decr key /inceby key increment /decrby key increment
返回结果分为3中状况:
值不是整数,返回错误;
值是整数,返回自增后的结果;
键不存在,按照值为0自增,返回结果为1。
append key value 能够向字符串尾部追加值
strlen key
每一个汉字占用3个字字节
getset key value
setrange key offeset value 192.168.225.129:6379> get liming "class4" 192.168.225.129:6379> setrange liming 0 m (integer) 6 192.168.225.129:6379> get liming "mlass4" 192.168.225.129:6379>
getrange key start end start和end分别为开始和结束的偏移量,偏移量从0开始
hset key field value
还提供了hsetnx命令
Eg:hset user:1 name tom
hget key field
192.168.225.129:6379> hset user:1 name Tom (integer) 1 192.168.225.129:6379> hget user:1 name "Tom" 192.168.225.129:6379> hget user:1 age (nil)
hdel key field [field ......] 会删除一个或多个field,返回结果为成功删除fiel的个数
hlen key
Hmget key field [field ......]
Hmset key field value [field value]
hexists key field
hkeys key
192.168.225.129:6379> hkeys user:1 1) "name" 2) "age" 3) "grand" 4) "city"
hvals key
192.168.225.129:6379> hvals user:1 1) "Tom" 2) "20" 3) "3" 4) "beijing"
hgetall key
hincrby key field
hincrbyfloat key field
hstrlen key field
列表类型原来存储多个有序的字符串,能够重复
列表的4中操做类型 | |
---|---|
操做类型 | 操做 |
添加 | rpush 、lpush、linsert |
查 | lrange、lindex、llen |
删除 | lpop 、rpop、 lrem、ltrim |
修改 | lset |
阻塞操做 | blpop、brpop |
rpush key value [value......]
lpush key value [value......]
linsert key before|after pivot value
linsert命令会从列表中找到等于pivot的元素,在其前或者后插入一个新的元素value
192.168.225.129:6379> rpush mylist a b c d e f b a (integer) 8 192.168.225.129:6379> linsert mylist after f g (integer) 9 192.168.225.129:6379> lrange mylist 0 -1 1) "a" 2) "b" 3) "c" 4) "d" 5) "e" 6) "f" 7) "g" 8) "b" 9) "a"
lrange key start end 索引下标从左到右分别是0到N-1,从右到左分别是-1到-N;end选项包含了自身
lrange key 0 -1 能够从左到右获取列表的全部元素
lrange mylist 1 3 获取列表中第2个到第4个元素
lindex key index
llen key
rpop key
lpop key
lrem key count value
Lrem命令会从列表中找到=value的元素进行删除,根据count的不一样分为3中状况
Count>0,从左到有,删除最多count个元素 Count<0,从右到左,删除最多count绝对值个元素 Count=0,删除全部
列表listaaa为a a a a java php b a b 192.168.225.129:6379> lrem listaaa 5 a (integer) 5 192.168.225.129:6379> lrange listaaa 0 -1 1) "java" 2) "php" 3) "b" 4) "b" 192.168.225.129:6379> lrem listaaa 3 php (integer) 1 192.168.225.129:6379> lrange listaaa 0 -1 1) "java" 2) "b" 3) "b"
lset key index newValue 修改指定索引下标的元素
Eg:lset listaaa 1 python 输出为java python b
blpop key [key ...] timeout
brpop key [key ...] timeout
blpop和brpop是lpop、rpop的阻塞版本,除了弹出方式不一样,使用方法基本相同,timeout阻塞时间
brpop list:test 3 3秒后返回
brpop list:test 0 一直处于阻塞中
brpop mylist 0 马上返回
192.168.225.129:6379> brpop mylist 0 1) "mylist" 2) "a"
sadd key element [element .....] 返回结果为添加成功的元素个数
srem key element [element .....] 返回结果为删除成功的元素个数
Scard key scard的时间复杂度为O(1),直接用redis内部的变量
Sismember key element 在集合中则返回1,不然返回0
Srandmember key [count] count可不写,默认为1
Spop key [count] 3.2版本开始支持[count]
Smembers key 它和lrange、hgetall都属于比较重的命令,有时候可使用sscan来完成
sinterstore destination key [ key ......] sunionstore destination key [ key ......] sdiffstore destination key [ key ......]
例如:sinterstore user:1_2:inter user:1 user:2 user:1_2:incr也是集合类型
zadd key score member[score member .....] 返回结果为添加成功的元素个数
zcard key scard的时间复杂度为O(1),直接用redis内部的变量
zsore key member
zrank key member
zrem key member [member .......]
zincrby key increment member
zrange key start end [withscores] 从低分到高分
zrevrange key start end [withscores] 从高分到低分
zrange key min max [withscores] [limit offset count ] 按照分数从低分到高分
zrevrange key max min [withscores] [limit offset count ] 按照分数从高分到低分
zcount key min max
zremrangebyrank key start end
zremrangebystore key min max
一、publish channel message 发布消息 eg:publish channel:sports 'I want to go eatting' 二、subscribe channel [channel .....] 订阅消息 eg: subscribe channel:sports 三、unsubscribe channel [channel .....] 取消订阅 四、psubscribe pattern [pattern ......] 按照模式订阅 五、unpsubscribe pattern [pattern ......] 按照模式取消订阅 六、查询订阅 pubsub channels 查看活跃的频道 192.168.225.128:6379> pubsub channels 1) "channel:sports" 2) "__sentinel__:hello" pubsub numsub [channel ......] 查看频道订阅数 pubsub numsub channel:sports pubsub numpat 查看模式订阅数 七、说明: 客户端在执行订阅命令以后进入了订阅状态,只能接收四个命令:subscribe、psubscribe、unsubscribe、punsubscribe; 新开启的订阅客户端,没法收到该频道以前的消息,由于redis不会对发布的消息进行持久化。
8.1 discard , 取消执行事务块内的全部命令 8.2 exec , 执行事务块内的命令 8.3 multi , 标记一个事务块的开始 8.4 unwatch , 取消watch命令对全部key的监视 8.5 watch key [key ...] , 监视一个或者多个key,若是事务执行以前,这个kye被其它命令所动,则事务被打断
9.1 auth password , 登陆redis时输入密码 9.2 echo message , 打印一个特定的信息message,测试时使用 9.3 ping , 测试与服务器的链接,若是正常则返回pong 9.4 quit , 请求服务器关闭与当前客户端的链接 9.5 select index , 切换到指定的数据库
10.1 bgsave , 后台异步保存数据到硬盘 10.2 client setname/client getname , 为链接设置、获取名字 10.3 client kill ip:port , 关闭地址为 ip:port的客户端 10.4 client list , 以人类可读的方式,返回全部的链接客户端信息和统计数据 10.5 config get parameter , 取得运行redis服务器的配置参数 10.6 config set parameter value , 设置redis服务器的配置参数 10.7 config resetstat , 重置info命令的某些统计数据 10.8 dbsize , 返回当前数据库中key的数量 10.9 flushall , 清空整个redis服务器的数据(删除全部数据库的全部 key) 10.10 flushdb , 清空当前数据库中的全部key 10.11 info [section] , 返回redis服务器的各类信息和统计数据 10.12 lastsave , 返回最近一次redis成功将数据保存到磁盘时的时间 10.13 monitor , 实时打印出redis服务器接收到的指令 10.14 save , 将当前 Redis 实例的全部数据快照(snapshot)以 RDB 文件的形式保存到硬盘 10.15 slaveof host port , 将当前服务器转变为指定服务器的从属服务器 10.16 slowlog subcommand [argument] , Redis 用来记录查询执行时间的日志系统