关于reids的常用命令

1.redis是一个运行在内存的数据库,他有一个缺点:假如有一个正在编辑的wor文档,突然停电那么这个正在编辑的word文档是会丢失的;所以它诞生了save,bgsave这两个命令,save是保存在磁盘中是同步的(等他保

127.0.0.1:6379> save
OK
127.0.0.1:6379> bgsave
Background saving started

存完之后才可以输入其他的命令),bgsave是保存在磁盘中在后台保存的异步的

2.redis的运行,进入安装redis的bin目录,先运行服务端,再运行客户端,ping命令是用来测试连接

[ ~]# cd /opt/redis
[ redis]# ./bin/redis-server redis.conf 
[ redis]# ./bin/redis-cli
127.0.0.1:6379> ping
PONG

3.redis有五种类型string(相当于JDK中的String+Integer),list(相当于JDK中的linklist),set(相当于JDK中的hashset,无序,不重复),hash(类似JDK中的hashMap,一个大key对应好多的小key于value),zset(相当于JDK中的treeset,排序,有分值的概念)

4.redis默认使用0数据库,切换到指定数据库:select index,默认有16个库,下标从0-15

1 127.0.0.1:6379> select 3
2 OK
3 127.0.0.1:6379[3]>

quit:请求服务器关闭与当前客户端的连接,客户端关闭,服务端没关 1 127.0.0.1:6379[3]> quit 2 [ redis]# 

client setname 名字:设置客户端连接的名称;client getname:获取客户端名称

127.0.0.1:6379> client setname 1710d
OK
127.0.0.1:6379> client getname
"1710d"

client list:返回所有连接到服务器的客户端信息和统计数据

1 127.0.0.1:6379> client list
2 id=4 addr=127.0.0.1:42926 fd=6 name=1710d age=133 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

config set 命令可以动态地调整 Redis 服务器的配置(confifiguration)而无须重启 1 127.0.0.1:6379> config set loglevel notice 2 OK 3 (修改配置) 

config get 命令用于取得运行中的 Redis 服务器的配置参数

127.0.0.1:6379> config get bind
1) "bind"
2) ""
(获得绑定ip的参数)

shutdown:关闭客户端与服务端 1 127.0.0.1:6379> shutdown 2 not connected> 

dbsize:返回数据库中所有key的数量;flushdb:清空当前数据库中的所有 key;flushall:清空整个 Redis 服务器的数据(删除所有数据库的所有 key );type key:查看key的类型;keys *: 匹配数据库中所有 key;

KEYS h?llo 匹配 hello , hallo 和 hxllo 等。

KEYS h*llo 匹配 hllo 和 heeeeello 等。

KEYS h[ae]llo匹配hellohallo,但不匹配hillo

127.0.0.1:6379> dbsize
(integer) 3
127.0.0.1:6379> keys *
1) "Name"
2) "age"
3) "name"
127.0.0.1:6379> type age
string

dump序列化给定 key ,并返回被序列化的值

127.0.0.1:6379> get name
"test"
127.0.0.1:6379> dump name
"\x00\x04test\x06\x00\x17}\xc7 \x99\xa4\x8c\xd6"

exists key:检查给定的key是否存在;del key[key……]:删除给定的一个或多个key

127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> del age
(integer) 1
127.0.0.1:6379> del name Name
(integer) 2

move key 1:将当前数据库的 key 移动到给定的数据库 db 当中

127.0.0.1:6379> set name 1
OK
127.0.0.1:6379> move name 2
(integer) 1
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> keys *
1) "name"

randomkey:从当前数据库中随机返回(不删除)一个 key 1 127.0.0.1:6379[2]> randomkey 2 "name" 

ttl:以秒为单位,返回给定 key 的剩余生存时间,返回值:当 key 不存在时,返回 -2,当 key 存在但没有设置剩余生存时间时,返回 -1,否则,以秒为单位,返回 key 的剩余生存时间

pttl:这个命令类似于 TTL 命令,但它以毫秒为单位返回 key 的剩余生存时间

127.0.0.1:6379[2]> ttl name
(integer) -1
127.0.0.1:6379[2]> ttl k
(integer) -2
127.0.0.1:6379[2]> pttl name
(integer) -1

expire key 30:为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除;pexpire key 10000: 这个命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间

127.0.0.1:6379[2]> expire name 30
(integer) 1
127.0.0.1:6379[2]> ttl name
(integer) 20
127.0.0.1:6379[2]> pttl name
(integer) 14152
127.0.0.1:6379[2]> pexpire name 10000
(integer) 1
127.0.0.1:6379[2]> ttl name
(integer) 7
127.0.0.1:6379[2]> pttl name
(integer) 2738

persist key:移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』

127.0.0.1:6379[2]> set k1 20
OK
127.0.0.1:6379[2]> ttl k1
(integer) -1
127.0.0.1:6379[2]> expire k1 20
(integer) 1
127.0.0.1:6379[2]> ttl k1
(integer) 17
127.0.0.1:6379[2]> persist k1
(integer) 1
127.0.0.1:6379[2]> ttl k1
(integer) -1

rename key namekey:将 key 改名为 namekey

127.0.0.1:6379[2]> rename k1 namekey
OK
127.0.0.1:6379[2]> keys *
1) "namekey"

5.string类型

set key value[EX 秒][PX 毫秒]:将字符串值 value 关联到 key 。如果 key 已经持有其他值, SET 就覆写旧值,无视类型;EX与PX都是设置生存时间;

get key:返回 key 所关联的字符串值。如果 key 不存在那么返回特殊值 nil

append key value:如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value;

decr key:将 key 中储存的数字值减一,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作;(递减,只针对于数字)

decrby key 2:将 key 所储存的值减去减量 2 ,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作;(给定要减去的数值,只针对于数字)

incr key:将 key 中储存的数字值增一,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作;(递增,只针对于数字)

incrby key 2:将 key 所储存的值加上增量 2 ,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令;(给定要增加的数值,只针对于数字)

mset key value[key value……]:同时设置一个或多个 key-value 对;

mget key[key……]:返回所有(一个或多个)给定 key 的值;

strlen key:返回 key 所储存的字符串值的长度;

setrange key 1 yyyy:yyyy参数覆写(overwrite)给定 key 所储存的字符串值,从偏移量 1 开始

127.0.0.1:6379> set name 20
OK
127.0.0.1:6379> get name
"20"
127.0.0.1:6379> append name 2
(integer) 3
127.0.0.1:6379> get name
"202"
127.0.0.1:6379> get a
(nil)
127.0.0.1:6379> append a 2
(integer) 1
127.0.0.1:6379> get a
"2"
127.0.0.1:6379> decr a
(integer) 1
127.0.0.1:6379> get a
"1"
127.0.0.1:6379> get name
"202"
127.0.0.1:6379> decrby name 2
(integer) 200
127.0.0.1:6379> incr name
(integer) 201
127.0.0.1:6379> get name
"201"
127.0.0.1:6379> incrby name 2
(integer) 203
127.0.0.1:6379> mset 1 name 2 age
OK
127.0.0.1:6379> mget 1 2
1) "name"
2) "age"
127.0.0.1:6379> strlen name
(integer) 3
127.0.0.1:6379> setrange name 1 yyyy
(integer) 5
127.0.0.1:6379> get name
"2yyyy"

6.list类型

lpush key value[value……]:将一个或多个值 value 插入到列表 key 的表头,如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空队列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a;rpush从右向左推;

lrange key:返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定,下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示,列表的第二个元素,以此类推,你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推

127.0.0.1:6379> lpush 1710d a b c
(integer) 3
127.0.0.1:6379> lrange 1710d 0 -1
1) "c"
2) "b"
3) "a"

lindex key index:返回列表 key 中,下标为 index 的元素。下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示

列表的第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类

127.0.0.1:6379> lrange 1710d 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> lindex 1710d -1
"a"
127.0.0.1:6379> lindex 1710d -2
"b"
127.0.0.1:6379> lindex 1710d 0
"c"
127.0.0.1:6379> lindex 1710d 2
"a"

llen key:返回列表 key 的长度。如果 key 不存在,则 key 被解释为一个空列表,返回 0 .如果 key 不是列表类型,返回一个错误。

127.0.0.1:6379> llen 1710d
(integer) 3
127.0.0.1:6379> get key
(nil)
127.0.0.1:6379> llen key
(integer) 0
127.0.0.1:6379> type name
string
127.0.0.1:6379> llen name
(error) WRONGTYPE Operation against a key holding the wrong kind of value

lrem key count value:根据参数 count 的值,移除列表中与参数 value 相等的元素.count 的值可以是以下几种:count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count ;count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值;count = 0 : 移除表中所有与 value 相等的值;从表头删除 count >0;从表尾 删除 count <0;全部删除 count =0

127.0.0.1:6379> lpush 1710d c c f b c a b c d f d b c a
(integer) 14
127.0.0.1:6379> lrange 1710d 0 -1
 1) "a"
 2) "c"
 3) "b"
 4) "d"
 5) "f"
 6) "d"
 7) "c"
 8) "b"
 9) "a"
10) "c"
11) "b"
12) "f"
13) "c"
14) "c"
127.0.0.1:6379> lrem 1710d 0 a
(integer) 2
127.0.0.1:6379> lrange 1710d 0 -1
 1) "c"
 2) "b"
 3) "d"
 4) "f"
 5) "d"
 6) "c"
 7) "b"
 8) "c"
 9) "b"
10) "f"
11) "c"
12) "c"
127.0.0.1:6379> lrem 1710d 2 d
(integer) 2
127.0.0.1:6379> lrange 1710d 0 -1
 1) "c"
 2) "b"
 3) "f"
 4) "c"
 5) "b"
 6) "c"
 7) "b"
 8) "f"
 9) "c"
10) "c"
127.0.0.1:6379> lrem 1710d -2 b
(integer) 2
127.0.0.1:6379> lrange 1710d 0 -1
1) "c"
2) "b"
3) "f"
4) "c"
5) "c"
6) "f"
7) "c"
8) "c"

lpop key:移除并返回列表 key 的头元素

127.0.0.1:6379> lrange 1710d 0 -1
1) "c"
2) "b"
3) "f"
4) "c"
5) "c"
6) "f"
7) "c"
8) "c"
127.0.0.1:6379> lpop 1710d
"c"
127.0.0.1:6379> lrange 1710d 0 -1
1) "b"
2) "f"
3) "c"
4) "c"
5) "f"
6) "c"
7) "c"

7.set类型

sadd key member[member……]:将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。假如 key 不存在,则创建一个只包含 member 元素作成员的集合

127.0.0.1:6379> sadd myset chjx chjx test
(integer) 2
127.0.0.1:6379> sadd myset chjx a
(integer) 1

smembers key:返回集合 key 中的所有成员

127.0.0.1:6379> smembers myset
1) "test"
2) "a"
3) "chjx"

sdiff key key2:返回一个集合的全部成员,该集合是所有给定集合之间的差集。不存在的 key 被视为空集。(差集,前面集合中有,后面集合中没有的元素);

sinter key key2:返回一个集合的全部成员,该集合是所有给定集合的交集。不存在的 key 被视为空集。当给定集合当中有一个空集时,结果也为空集(根据集合运算定律).(交集,两个集合共同拥有的元素);

sunion key key2:返回一个集合的全部成员,该集合是所有给定集合的并集。不存在的 key 被视为空集。(两个集合中的所有元素,并且去掉重复的);

127.0.0.1:6379> sadd myset1 chjx lisi test zhangsan
(integer) 4
127.0.0.1:6379> sadd myset2 chjx qianqi wangwu zhaoliu
(integer) 4
127.0.0.1:6379> sdiff myset1 myset2
1) "lisi"
2) "test"
3) "zhangsan"
127.0.0.1:6379> sinter myset1 myset2
1) "chjx"
127.0.0.1:6379> sunion myset1 myset2
1) "qianqi"
2) "zhangsan"
3) "wangwu"
4) "test"
5) "lisi"
6) "chjx"
7) "zhaoliu"

8.hash类型

hset key field value:将哈希表 key 中的域 field 的值设为 value 。如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。如果域 field 已经存在于哈希表中,旧值将被覆盖(hmset:是设置多个键值对)

hget key field:取值(hmget:获取多个)

127.0.0.1:6379> hset myhash name lisi
(integer) 1
127.0.0.1:6379> hget myhash name
"lisi"

hkeys key:返回哈希表 key 中的所有域

127.0.0.1:6379> hset myhash name lisi
(integer) 1
127.0.0.1:6379> hset myhash age 18
(integer) 1
127.0.0.1:6379> hkeys myhash
1) "name"
2) "age"

hvals key:返回哈希表 key 中所有域的值

1 127.0.0.1:6379> hvals myhash
2 1) "lisi"
3 2) "18"

hgetall key:返回哈希表 key 中,所有的域和值

127.0.0.1:6379> hgetall myhash
1) "name"
2) "lisi"
3) "age"
4) "18"

hincrby key field increment :为哈希表 key 中的域 field 的值加上增量 increment

127.0.0.1:6379> hgetall myhash
1) "name"
2) "lisi"
3) "age"
4) "18"
127.0.0.1:6379> hincrby myhash age 2
(integer) 20
127.0.0.1:6379> hgetall myhash
1) "name"
2) "lisi"
3) "age"
4) "20"

hlen key:返回哈希表 key 中域的数量 1 127.0.0.1:6379> hlen myhash 2 (integer) 2 

hexists key field :查看哈希表 key 中,给定域 field 是否存在;

hdel key field[field……]:查看哈希表 key 中,给定域 field 是否存在;

127.0.0.1:6379> hexists myhash age
(integer) 1
127.0.0.1:6379> hdel myhash age
(integer) 1
127.0.0.1:6379> hexists myhash age
(integer) 0

9.zset类型(zset中有一个分数score的概念,可以通过这个score来对分数对应的元素排序)

zadd key score member[score member……]:将一个或多个 member 元素及其 score 值加入到有序集 key 当中。如果某个 member 已经是有序集的成员,那么更新这个 member 的 score 值,并通过重新插入这个member 元素,来保证该 member 在正确的位置上。score 值可以是整数值或双精度浮点数。如果 key 不存在,则创建一个空的有序集并执行 ZADD 操作。当 key 存在但不是有序集类型时,返回一个错误;

zrange key start stop withscores:返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递增(从小到大)来排序(withscores连分一起查看);

127.0.0.1:6379> zadd myzset 70 lisi 80 zhangsan 90 wangwu
(integer) 3
127.0.0.1:6379> zrange myzset 0 -1
1) "lisi"
2) "zhangsan"
3) "wangwu"
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "lisi"
2) "70"
3) "zhangsan"
4) "80"
5) "wangwu"
6) "90"

zcard key:返回有序集 key 的基数(有几条数据) 1 127.0.0.1:6379> zcard myzset 2 (integer) 3 

zcount key min max:返回有序集 key 中, score 值在 min 和 max 之间(默认包括 score 值等于 min 或 max )的成员的。(在区间内的元素个数) 1 127.0.0.1:6379> zcount myzset 70 80 2 (integer) 2 

zincrby key increment member :为有序集 key 的成员 member 的 score 值加上增量 increment 1 127.0.0.1:6379> zincrby myzset 2 lisi 2 "72" 

zrangebyscore key min max [withscores]:返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列(在区间内的元素)

127.0.0.1:6379> zrangebyscore myzset 70 80
1) "lisi"
2) "zhangsan"
127.0.0.1:6379> zrangebyscore myzset 70 80 withscores
1) "lisi"
2) "72"
3) "zhangsan"
4) "80

zrank key member:返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递增(从小到大)顺序排列。排名以 0 为底,也就是说, score 值最小的成员排名为 0 1 127.0.0.1:6379> zrank myzset lisi 2 (integer) 0 

zrem key member[member……]:移除有序集 key 中的一个或多个成员,不存在的成员将被忽略(可以移除多个)

127.0.0.1:6379> zrem myzset lisi
(integer) 1
127.0.0.1:6379> zrem myzset wangwu zhangsan
(integer) 2

zremrangebyrank key start stop:移除有序集 key 中,指定排名(rank)区间内的所有成员

127.0.0.1:6379> zadd myzset 70 lisi 80 zhangsan 90 wangwu
(integer) 3
127.0.0.1:6379> zremrangebyrank myzset 0 1
(integer) 2
127.0.0.1:6379> zrange myzset 0 -1
1) "wangwu"

zremrangebyscore key min max:移除有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员

127.0.0.1:6379> zadd myzset 70 lisi 80 zhangsan 90 wangwu
(integer) 2
127.0.0.1:6379> zremrangebyscore myzset 70 80
(integer) 2

zrevrange key start stop [withscores]:返回有序集 key 中,指定区间内的成员。其中成员的位置按 score 值递减(从大到小)来排列(从大到小排名输出;rev:reverse反转的缩写)

127.0.0.1:6379> zrevrange myzset 0 -1
1) "wangwu"
2) "zhangsan"
3) "lisi"
127.0.0.1:6379> zrevrange myzset 0 -1 withscores
1) "wangwu"
2) "90"
3) "zhangsan"
4) "80"
5) "lisi"
6) "70"

zrevrangebyscore key max min [withscores]:返回有序集 key 中, score 值介于 max 和 min 之间(默认包括等于 max 或 min )的所有的成员。有序集成员按 score 值递减(从大到小)的次序排列

127.0.0.1:6379> zrevrangebyscore myzset 90 70
1) "wangwu"
2) "zhangsan"
3) "lisi"
127.0.0.1:6379> zrevrangebyscore myzset 90 70 withscores
1) "wangwu"
2) "90"
3) "zhangsan"
4) "80"
5) "lisi"
6) "70"

zrevrank key member:返回有序集 key 中成员 member 的排名。其中有序集成员按 score 值递减(从大到小)排序.(从大到小排序的排名)

127.0.0.1:6379> zrevrangebyscore myzset 90 70 withscores
1) "wangwu"
2) "90"
3) "zhangsan"
4) "80"
5) "lisi"
6) "70"
127.0.0.1:6379> zrevrank myzset lisi
(integer) 2

zscore key member:返回有序集 key 中,成员 member 的 score 值 1 127.0.0.1:6379> zscore myzset lisi 2 "70" 

相关推荐