常用命令

启动 redis-server

关闭 redis-cli

回复命令

整数回复 dbsize

字符串回复 keys * ,set xx xx

 

redis 配置文件

动态设置

redis-server --port 1234
redis-cli -h -localhost 1234
redis-server redis.config
CONFIG GET name:
config get loglevel
CONFIG SET loglevel

配置文件选项

port 6379 默认端口

bind 127.0.0.1 默认主机地址

timeout 0 多少秒后自动关闭连接,0代表没有设置此选项

loglevel notice 日志级别 debug verbose notic warning

logfile "" 日志的记录方式,默认标准输出stdout,

databases 16 默认数据库数量16个,默认为0

select 0

快照

save <second> <changes> 多少秒有多少次改变将数据同步到磁盘里

save 900 1

save 300 10

rdbccompression yes 存储本地数据库是是否启用压缩 , 默认yes

dbfilename dump.rdb 指定本地数据库的文件名,默认为dump.rdb

dir ./ 指定本地数据库的存放目录,默认是当前目录


redis数据类型

String类型

一个健最多存储512MB

1)SET key value [EX seconds][PX millisecond ] 设置key对应的value,

可选项:

ex seconds 设置key的过期时间

px millisecond 以毫秒设置过期时间

nx 只有键不存在的时候才可以设置成功

xx 只有键存在时才可以设置成功

如果key存在同名会产生覆盖

如果ex和px同时出现,后面的会覆盖前面的

set str ‘test’

2)GET key 根据key找到对应的值

key不存在返回nil

 

3)GETRANGE key start end 字符截取

4)GETSET 设置指定key的值,并返回原来的值,原来的值不存在返回nil

5)MSET key value key value。。。 一次设置多个

6)MGET key key key 一次获得多个

7)STRLEN key 获取字符串长度

8)SETRANGE key offset value 字符串替换

如果设置的原来的字符串长度比设置的小,就以零字节(/x00)来填充

9) SETNX

10) SETEX key seconds value 设置key并且设置过期时间,单为为秒,原子操作

相当于执行 set key value ,并对这个key设置了过期时间 expire key seconds

setex exstr 10 ‘test’,对相同key进行设置会产生覆盖

11)TTL key 获取key的生命周期,PTTL毫秒

12)MSETNX、MSET同理多个

13)PSETEX key milliseconds value 以毫秒为单为设置key的生命周期

14)INCR key 对key中存储的数字加1,key存储的要为数字

如果key不存在,会先初始化为0,再执行incr

15)INCRBY 将key中存储的数字加上指定增量

INCRBY increment

16)INCRBYFLOAT 给key中存储的数字加上浮点数

17)DECR

18)APPEND key value通过apend将值追加到字符串的末尾

如果key不存在,将value set进去

 

 

Hash类型

1) HSET 将哈希表key中域field设置成指定的value

HSET key field value,如果存在重新复制

2)HGET 返回哈希表中field对应的值

HGET key field,如果key不存在返回nil

3)HSETNX 如果不存在设置

如果field存在操作无效,返回0

4)HMSET key 设置多个field

5)HMGET 一次获得哈希表key中多个field值

如果字段field不存在返回nil

6)HGETALL 返回哈希表key中所有的域和值

HGETALL key

7)HKEYS 返回hash中key对应的所有域

8)HVALS 返回hash表中所有field对应的值

hvals key

9)HLEN key 返回hash表feild的数量

10)HINCRBY key field value 对key的field增量操作,存储的是数值才可以

11)HINCRBYFLOAT key field value 增量可以为浮点型

12)HDEL

hdel key field field

 

List类型

1)LPUSH 向列表的左端添加元素,可以添加多个

LPUSH key value1 value2,如果不存在先创建

2)RPUSH 向列表右端添加元素,可添加多个

RPUSH key value1 value2

3)LPUSHX 向头部添加一个值,不能添加多个,只有存在才添加

4)LPOP弹出列表左边的元素

5)RPOP弹出列表右边的元素

6)LLEN 得到列表的长度

7)LRANGE 获取列表片段

LRANGE key start stop

LRANGE key 0 -1 从0到最后一个

如果起始点超出下表会无返回

8)LREM

LREM key count value

count>0:从列表的头部开始向尾部搜索,移除与value相等的元素,移除count个

count<0:从列表的尾部开始头部搜索,移除与value相等的元素,移除count个

count=0:移除列表中所有与value值相等的值

LREM list2 2 a

9)LINDEX 获得指定索引元素的zhi

LINDEX key index

LINDEX list2 3

10)LSET设置指定索引元素的值

LSET key index value

11)LTRIM 只保留列表的片段

LTRIM key start stop

12)LINSERT 向列表插入元素

LINSERT key BEFORE|AFTER privot value

LINSERT key BEFORE 'f' 'c'

如果key不存在返回-1,空列表操作返回0

13)RPOPLPUSH 将元素从一个列表转到另一个列表

RPOPLPUSH source destination

14)BLPOP BLPOP是LPOP的阻塞版本

BLPOP key key key... timeout

BLPOP list1 list2 list3 0,0表示一直阻塞,如果list都为空,则会一直阻塞直到list中有值

Set集合类型

无序集合

1)SADD 向集合中添加元素

SADD key numer[,....]

如果key不存在,先创建,成功返回添加成功个数,不成功返回0

不能添加重复的元素

2)SMEMBERS 返回指定集合中的元素

SMEMBERS key

3)SISMEMBER 检测value是否是集合中的成员

SISMEMBER key value

4)SREM 删除集合中的元素

SREM key value

5)SPOP 删除并返回集合中的随机元素

SPOP key

6)SRANDMAMER随机返回集合中的元素

SRANDMUMBER key count count表示返回多少个

count小于0返回一个数组,数组中成员可能出现重复,数组的长度是count取绝对值

7)SDIFF 返回集合的差集

SDIFF key...

8)SINTER: 返回集合间的交集

SINTER key key..

9)SUNION 返回集合的并集

SUNION key...

10)SCARD 返回集合中元素个数

SCARD key

11)SDIFFSTORE 将差集结果保存到指定集合中

SDIFFSTORE destination key key....

如果目标集合存在,产生覆盖

12)SINTERSTORE 将交集的结果保存在指定集合中

SINTERSTORE destination key key...

13) SUNIONSTORE 将并集结果保存到指定集合中

SUNIONSTORE destination key

14)SMOVE 将集合中的元素移动到另一个集合中

SMOVE source destination member (原子操作)

 

Zset有序集合类型

散列表和跳跃列表,比set更耗内存

1)ZADD

ZADD key score member [score member]

如果成功返回新添加成员的数量,不返回更新的及存在的成员变量,成员不能存在重复

ZADD score 100 wency 78 tutu

返回(integer) 2

2)ZSCORE 获得指定元素的分数

3)ZRANGE 按照元素分数从小到大的顺序反回指定索引start到stop之间的所有元素(包含两端)

ZRANGE key start stop

ZRANGE score 0 -1

ZRANGE score 0 100

ZRANGE score 0 2 WITHSCORES 返回带分数

注意:当两个元素的分数相同的时候,redis在排序的时候按照元素名称的字典顺序排序,如果使用的是中文(utf-8)的方式,同样按照字典顺序排列

4)ZREVRANGE 按照分数从大到小的顺序

ZREVRANGE start stop 【WITHSORES】

5)ZRANGEBYSCORE 获得指定分数范围内的元素 按照分数从小到大的顺序

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

ZRANGEBYSCORE score (80 (90 (代表不包含端点

ZRANGEBYSCORE score 90 +inf +inf 代表无穷大,-inf代表负无穷

ZRANGEBYSCORE score 90 +inf limit 0 1

6)ZREVRANGEBYSCORE 指定分数范围内的元素,按从大到小的顺序

ZRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

7)ZINCRBY 操作某个元素的分数,返回增加操作之后的分数

ZINCYBY score 5 test1

ZINCTBY score -5 test1

8)ZCARD 获得集合中元素的数量

ZCARD score

9)ZCOUNT 获得指定分数内的元素的数量

ZCOUNT key min max

10)ZREM 删除一个或多个元素,返回删除元素的个数

ZREM key member 。。

11)ZREMRANGEBYRANK 按照排名范围删除元素

ZRAMRANGEBYRANK key start stop

12)ZREMRANGBYSCORE 按照分数范围删除元素

ZREMRANGEBYSCORE testRem 0 7

13)ZRANK 获得指定元素的排名,根据分数从小到大的顺序

ZRANK key member

14)ZREVRANK 获得指定的排名,根据分数从大到小的顺序

ZREVRANK key member

15)ZINTERSTORE 计算有序集合的交集,并将结果保存起来

ZINTERSTORE destination numberkeys [WEIGHTS weight ...](每个集合后面的权重)[AGGREGATE SUM | MIN | MAX ](默认求合)

127.0.0.1:6379> ZADD testStore1 1 a 2 b 3 c
(integer) 3
127.0.0.1:6379> ZADD testStore2 10 a 2 b 20 c
(integer) 3
127.0.0.1:6379> ZINTERSTORE testStore 2 testStore1 testStore2
(integer) 3
127.0.0.1:6379> ZRANGE testStore 0 -1 WITHSCORES
1) "b"
2) "4"
3) "a"
4) "11"
5) "c"
6) "23"
ZINTERSTORE testStore 2 testStore1 testStore2 WEIGHTS 1 0.1 AGGREGATE MAX
16)ZUNIONSTORE 计算有序集合的并集,将结果保存起来
ZUNIONSTORE destination numberkeys [WEIGHTS weight ...][AGGREGATE SUM | MIN | MAX ](默认求合)

和keys相关的命令

1)keys patten 返回所有匹配模式的key

keys * 任意字符

? 匹配一个任意

[] 匹配[]之间的内容 eg:[a-b]

\x 匹配特殊字符 eg:\? ,\*

2) exists key

3)type key

4)EXPIRE key seconds 设置key的过期时间

EXPIRE key timestamp

5)PEXPIRE key millisecond 以毫秒设置过期时间

6)TTL以秒为单位 PTTL以毫秒为单位返回剩余时间

TTL key PTTL key 如果键没有设置过期返回-1,key不存在返回-2

7)PERSIST 将带有过期时间的key转变成永久key

8)DEL 删除指定的key,可以删除多个

DEL key key

9)REMENDKEY 随机返回当前数据库中的一个key

10)RENANE 重命名一个key

RENAME key value

11)RENAMENX 必须重命名一个不存在的名称才会生效

12)DUMP 序列化给定的key,返回序列化之后的值

DUMP key

13)RESTORE 反序列化

RESTORE key ttl value
restore key 0 "\x00\x0ethis is a test\x06\x00f\x97\x10\x8bo\xb5\x91\xf8"

14)MOVE 将当前数据库中的key移动到另外的数据库中

MOVE key dbname

当移动一个不存在的key会失败

当目标数据库存在同名的key时会失败