常用命令
启动 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时会失败