Redis 应用&命令
redis 五种数据类型:
类型 结构 使用场景 备注
String 字符串 key value 各种数据,最大为512MB
Hash 哈希 key field1 val1 用户信息 单维数组
List 列表 key val1 val2 队列 value 可重复
Set 集合 key member1 member2 好友推荐 member不能重复,求交集差集等
zset 有序集合 key score1 member1 score2 member2 排行榜 member不能重复,可加权重
type set get
String(字符串): set key v get key
Hash(哈希): hmset key k v hgetall key, hget key k
List(列表): lpush key v lrange key 0 10
Set(集合): sadd key v smembers key
zset(sorted set:有序集合): zadd key score member zrangebyscore key score score
----------------------------------------------------------------------------
常用(通用)命令:
del key 该命令用于在 key 存在时删除 key
exists key 检查给定 key 是否存在
expire key seconds 为给定 key 设置过期时间(秒)
keys pattern 查找所有符合给定模式(pattern - (如:*;显示全部key))的 key
persist key 移除 key 的过期时间,key 将持久保持
ttl key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)
randomkey 从当前数据库中随机返回一个 key
rename key newkey 修改 key 的名称
type key 返回 key 所储存的值的类型
----------------------------------------------------------------------------
string(字符串):
set key value 设置指定 key 的值,若存在则覆盖
get key 获取指定 key 的值
getrange key start end 获取 key 中 指定范围的值;(limit)
getset key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
mget key1 [key2..] 获取所有(一个或多个)给定 key 的值
setnx key value 只有在 key 不存在时设置 key 的值。
strlen key 返回 key 所储存的字符串值的长度
setex key seconds value 设置指定 key 的值,并将 key 的过期时间设为 seconds (秒)
mset key value [key value ...] 同时设置一个或多个 key-value 对。
msetnx key value [key value ...] 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
incr key 将 key 中储存的数字值增一
decr key 将 key 中储存的数字值减一
append key value 将 value 追加到 key 原来的值的末尾
----------------------------------------------------------------------------
hash(哈希):
hgetall key 获取指定 key 的所有字段和值
hset key field value 将 key 中的字段 field 的值设为 value
hget key field 获取指定字段的值
hkeys key 获取所有哈希表中的字段
hvals key 获取所有值
hlen key 获取字段的数量
hmset key field1 value1 [field2 value2 ] 同时设置多个 field-value(字段-值)
hmget key field1 [field2] 获取所有给定字段的值
hdel key field1 [field2 ...] 删除一个或多个字段
hexists key field 查看 key 中,指定的字段是否存在
hsetnx key field value 只有在字段 field 不存在时,设置字段的值
----------------------------------------------------------------------------
list(列表):
lpush key value1 [value2 ...] 将一个或多个值插入到列表头部(左边)
lpushx key value 将一个值插入到已存在的列表头部(左边)
lpop key 移出并获取列表的第一个元素(左边)
rpush key value1 [value2 ...] 在列表中添加一个或多个值;从右边
rpushx key value 为已存在的列表添加值;从右边
rpop key 移除并获取列表最后一个元素(右边第一个)
lrange key start stop 获取列表指定范围内的元素 (lrange key 0 -1: 获取全部)
llen key 获取列表长度
lrem key count value 移除列表元素等于value的元素;当count>0时,从表头开始查找,移除count个;当count=0时,从表头开始查找,移除所有等于value的;当count<0时,从表尾开始查找,移除|count| 个
lset key index value 通过索引设置列表元素的值
lindex key index(数字索引: 0,1) 通过索引获取列表中的元素; index>=0,0 表头,1 第二个元素,依次类推;index<0,-1 表尾,-2倒数第二个元素,依次类推
blpop key1 [key2 ...] timeout(秒) 移出并获取列表的第一个元素(左边第一个); 如果列表没有元素,会阻塞列表,直到等待超时或发现可弹出元素为止
brpop key1 [key2 ...] timeout(秒) 移出并获取列表的最后一个元素(右边第一个); 如果列表没有元素,会阻塞列表,直到等待超时或发现可弹出元素为止
linsert key before|after pivot value 将值插入到pivot的前面或后面。如果参照点pivot不存在不插入。如果有多个pivot,以离表头最近的为准
----------------------------------------------------------------------------
set(集合):
sadd key member1 [member2 ...] 向集合添加一个或多个成员
scard key 获取集合的成员数
sismember key member 判断 member 元素是否是集合 key 的成员
smembers key 返回集合中的所有成员
spop key 移除并返回集合中的一个随机元素
srandmember key [count] 返回集合中一个或多个随机数
srem key member1 [member2 ...] 移除集合中一个或多个成员
----------------------------------------------------------------------------
sorted set(有序集合)
zadd key score1 member1 [score2 member2 ...] 向有序集合添加一个或多个成员,或者更新已存在成员的分数
zcard key 获取有序集合的成员数
zrange key start stop [withscores(显示分数)] 返回指定索引区间内的成员
例: zrange key 0 -1 withscores 显示全部成员与分数
zrangebyscore key min max [withscores] 返回指定分数区间内的成员
例: zrangebyscore key 1 4 withscores 1 <= score <= 4
zrangebyscore key (1 4 withscores 1 < score <= 4
zrangebyscore key -inf 1 withscores score <= 1
zrank key member 返回指定成员的索引
zrem key member [member ...] 移除一个或多个成员
zremrangebyrank key start stop 移除给定的排名区间的所有成员
zremrangebyscore key min max 移除给定的分数区间的所有成员
zrevrange key start stop [withscores] 返回指定索引区间成员,分数从高到底
zrevrangebyscore key max min [withscores] 返回指定分数区间内的成员,分数从高到低排序
例: zrevrangebyscore key +inf -inf
zrevrangebyscore key 5 2
zrevrank key member 返回指定成员的排名,成员按分数值递减(从大到小)排序
zscore key member 返回指定成员的分数值
--------------------------------------------------------------------------------
登陆:
redis-cli -h ip -p port [-a password]
redis-cli -h 192.168.1.145 -p 6382
如果有密码,输入 auth pass
批量按照通配符删除:
redis-cli -h 192.168.1.145 -p 6382 keys "NOTICE_*"| xargs redis-cli -h 192.168.1.145 -p 6382 del
TODO:有待完善