赞
踩
redis 命令:
redis完整命令行可以参考官网:
https://redis.io/commands
[root@dev ~]# /root/redis/src/redis-cli -h
redis-cli 3.2.13
Usage: redis-cli [OPTIONS] [cmd [arg [arg ...]]]
-h <hostname> Server hostname (default: 127.0.0.1).
-p <port> Server port (default: 6379).
-s <socket> Server socket (overrides hostname and port).
-a <password> Password to use when connecting to the server.
-r <repeat> Execute specified command N times.
-i <interval> When -r is used, waits <interval> seconds per command.
连接本地:
redis-cli
连接远端redis
redis-cli -h host -p port -a password
键(key)
keys *
注意: 由于redis是单线程的,因此在redis key数量很多的时候禁用该命令,否则容易引起生产应用夯机现象
如果一定要使用,除非能确定数据量不大,或者在一个没有被使用的集群节点上使用
set key value
例如: set test test1
get key
例如: get test
dbsize 键值总数
该命令不会遍历redis, 而是直接获取redis内置的计算总数变量
127.0.0.1:6379> dbsize
(integer) 6
exists key 检查key是否存在
127.0.0.1:6379> exists test
(integer) 1
del key 删除
127.0.0.1:6379> del test
(integer) 1
127.0.0.1:6379> exists test
(integer) 0
expire key seconds 设置过期时间
127.0.0.1:6379> expire test 10
(integer) 1
ttl 获取key剩余过期时间 返回值-1说明没有设置过期时间, -2 则表示过期
127.0.0.1:6379> ttl test
(integer) -2
type key 返回key数据类型
127.0.0.1:6379> type test
string
字符串:
可以应用于 缓存, 计数, 共享session, 限速限制频率等
set key value [EX seconds] [PX milliseconds] [NX|XX]
ex 过期时间,单位秒
px 设置毫秒级国企时间
nx 键必须不存在,才可以成功
xx 键存在才可以成功,用于更新
mset批量设置key
127.0.0.1:6379> mset test1 1 test2 2 test3 3
OK
mget 批量获取值
127.0.0.1:6379> mget test1 test2
其中mset mget 批量执行在一定情况下可以显著提升性能,时间复杂度是O(1), 而分开则可能是O(N) 还有更多的网络延迟消耗
但是如果批量的执行量特别大,又可能造成应用夯住, 因此需要合理评估使用
incr 计数
incr count
如果count不存在, 则新建key count 并加1 返回1
自减
decy key
strlen key 获取key值的长度
哈希:
hset key field value
127.0.0.1:6379> hset user tom 111
(integer) 1
hget key field 获取
127.0.0.1:6379> hget user tom
“111”
HDEL key field [field …] 删除
127.0.0.1:6379> HDEL user tom
(integer) 1
hlen 健个数
127.0.0.1:6379> hlen user
(integer) 0
hmset key field value [field value …] 批量设置
127.0.0.1:6379> hmset user tom 111 jim 112
OK
HMGET key field [field …] 批量获取值
127.0.0.1:6379> HMGET user tom jim
hkeys 获取keys的值, hvals获取值内容
127.0.0.1:6379> hkeys user
hgetall key 获取所有值
127.0.0.1:6379> HGETALL user
列表:
可以用于阻塞消息队列
RPUSH key value [value …]
lrange key start stop 获取列表
LINDEX key index 获取指定索引下标元素
lpop/ rpop 左弹出, 右弹出值,
LREM key count value 删除指定元素
LSET key index value 修改指定索引下标的元素u
blpop key [key …] timeout
brpop key [key …] timeout
blpop brpop 是lpop和rpop的阻塞版本,防止在其他线程更新或获取值
集合:
可以适用于tag 标签
SADD key member [member …] 添加元素
SREM key member [member …] 删除元素
SCARD key 计数, 元素个数
SISMEMBER key member 判断值是否存在key中
SRANDMEMBER key [count] 随机返回指定count个元素
spop key 随机弹出值
SMEMBERS key 获取所有元素
sdiff key [key] 比较集合的不同
SINTER key [key …] 求交集
SUNION key [key …] 求并集
有序集合
添加集合
zadd ke score member [score member…]
ZADD test 1 r1 2 r2 3 r3
计算集合:
ZCARD key
ZCARD testm
计算某个成员的分数:
ZSCORE key member
ZSCORE testm r1
计算成员的排名:
zrank key member
127.0.0.1:6379> zrank testm r3
(integer) 2
删除成员:
ZREM key member [member …]
增加成员分数
值需要是float类型
ZINCRBY key increment member
ZINCRBY testm increment r2
返回指定返回值:
ZRANGE key start stop [WITHSCORES]
127.0.0.1:6379> ZRANGE testm 1 2
1) "r2"
集合操作:
交集:
ZINTERSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
127.0.0.1:6379> ZADD testm2 1 r4 2 r5 3 r6
(integer) 3
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> ZRANGE testm 0 -1
1) "r1"
2) "r2"
127.0.0.1:6379> ZINTERSTORE test_inter 2 testm testm2
(integer) 0
并集:
ZUNIONSTORE destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
27.0.0.1:6379> ZUNIONSTORE test_inter 2 testm testm2
(integer) 5
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> ZRANGE test_inter 0 -1
1) "r1"
2) "r4"
3) "r2"
4) "r5"
5) "r6"
127.0.0.1:6379> ZRANGE test_inter 0 -1 withscores
1) "r1"
2) "1"
3) "r4"
4) "1"
5) "r2"
6) "2"
7) "r5"
8) "2"
9) "r6"
10) "3"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。