redis command学习

来源:互联网 发布:好玩的手游 知乎 编辑:程序博客网 时间:2024/05/29 18:07

临时密码,redis重启后密码就没了
config set requirepass yourPassword
config get requirepass
auth password 登录
外部密码没试过

select 0 选择数据库,默认0,项目是1

geo 地理
geoadd key 15 15 item1 15 15 item2 .. (longitude latitude member) 地理增加位置
geodist key item1 item2 [m,km,mi英里,ft英尺] 距离
geohash key item1 item2 .. 返回hash值,到一个网站查找 http://geohash.org/s6dtm6dtm60
geopos key item1 item2 .. 返回坐标数组
georadius key 15 15 10 [m,km ft,mi] withcoord withhash withdist 返回15 15 半径 10 的坐标
georadiusbymember key item1 10 km .. 除了中心点可以选择key中的元素,其他和georadius一样

hash
hset key item “value”
hsetnx key item value item不存在,存储并赋值,存在,无操作
hmset key item1 value item2 value .. 设置多个
hget key item
hmget key item1 item2 包含item value的列表
hgetall key
hdel key item1 item2..
hexists key item
hincrby key item 11 item增长11,item是integer
hincrbyfloat key item 11.4 item增长11.4
hkeys key 所有的key
hvals key 所有的值
hstrlen key item item的长度
hlen key 长度
hscan 和scan 类似

hyperLogLog 将除了第一个参数以外的参数存储到以第一个参数为变量名的HyperLogLog结构中,计算多少个不重复的元素
pfadd hll a b c d e ..
pfcount hell 有多少个,不是精确值,有0.81%的错误
pfmerge key item1 item2 item3 .. 合并多个

keys操作
del item1 item2 如果是list set hash ,那么元素越多越耗时越多
dump key 序列化给定 key ,结果比如 “\u0000\xC0\n\u0006\u0000\xF8r?\xC5\xFB\xFB_(”
restore key ttl “序列化的值” 反序列化,生存ttl毫秒,0 一直存活
exists item1 item1 item2.. 是否存在,相同item会被多次计数
expire key time 设置存活时间,使用del, set, getset *store会删除时间,rename,lpush,hset等不会 是按照系统的时间来存活的,系统时间修改, ttl的时间也会修改,移动两个电脑的数据保证他们的时间一致
pexpire key time 毫秒的存活时间
expireat key 1481708787 以时间戳设置key的消失时间
pexpireat key 1555555555005 毫秒的时间戳
persist key 移除存活时间,永久存活
pttl key 剩余存活毫秒时间 -2 key不存在,-1 永远存活
ttl key 秒
randomkey 返回数据库中随机的一个key
rename key newkey 重命名,newkey存在则覆盖
renamenx key newkey newkey存在,不重命名
keys h?llo matches hello, hallo and hxllo
keys h?llo matches hello, hallo and hxllo
keys h*llo matches hllo and heeeello
keys h[ae]llo matches hello and hallo, but not hillo
keys h[^e]llo matches hallo, hbllo, … but not hello
keys h[a-b]llo matches hallo and hbllo
keys * 所有的key
move key dbindex 移动key到另一个db中,已存在则失败
scan 0 match key count 1 匹配 key 的 显示个数1,接下来scan 上一次的游标数
sort key desc key如果全是是数字
sort key alpha 字符串
sort key limit 1 5 跳过第一个,返回的个数

list
lpush key 1 2 3 4 返回4 3 2 1
lpushx key item key不存在则不插入
rpush key
rpushx key key不存在不插入
lpop key 移除并返回第一个元素
rpop key 最后一个元素
阻塞行为的pop
blpop key1 key2 key3 10 只要有一个key有值,马上返回,没有,等待10秒,再返回,如果期间哪个key有值了,马上返回,多个client同时blpop同一个key时,先进先出原则
blpop key 0 一直等待,直到key被push值,这时,lpush key a b c ,那么等push完了,才会得到c
brpop key
rpoplpush source destination (它可以做一些消息处理)原子性地返回并移除存储在 source 的列表的最后一个元素(列表尾部元素), 并把该元素放入存储在 destination 的列表的第一个元素位置(列表头部)
brpoplpush sour dest 延迟阻塞的
lindex key 0 下标从0开始索引,可以负数
linsert key after | before item1 value 在item前或后插入一个元素
llen key 长度罗
lrange key start stop 可以为负数,stop超过范围也不会报错 负数倒着数,原则是stop的正着数的值不能小于start
lrem key 2 3 删除从头往尾数,2个值为3的item
lrem key -21 5 删除从尾往头数,21个值为5的item
lrem key 0 ss 删除所有值为ss的
lset key index value 改变几号位的值为value
ltrim key start stop 修剪key,只保留包括start到stop的值

set
sadd key item1 item2.. 添加元素
scard key 元素数量
sdiff key key1 key2.. 返回key和key1 key2 等 差集的元素 key与后面所有给定的结合的差集集合, key不存在的认为是空集
sdiffstore destination key key1 key2.. 和sdiff一样,只是把结果存在destination中,dest存在则覆盖
sinter key key1 key2.. key和key1 key2 等集合成员的交集(我理解,就是所有集合的交集,和sdiff不同,key的顺序与结果无关)
sinterstore dest key key1 key2..
sunion key1 key2.. 多个set合集
sunionstore destination key1 .. 已有直接覆盖,肯定成功
sismember key value value是否是key的成员
smembers key 所有元素
smove source destination member 从source 中删除member,dest中加入member,其中一个不是set则失败
spop key [count] 从key中随机移除并返回count个元素
srandmember key [count] 随机count个,默认一个,如果count负数,那么可以返回重复的元素绝对值(count) 个
srem key item1 item2.. 移除item 等元素
sscan 用法和scan一致,发现如果sscan中,key的元素个数 <= 10那么,sscan key 0 count 3 都不起作用,只有当再添加元素超过 10 了,就可以了,后面就算再删除也可以的

sorted set
分数使用双精度64位浮点数, -2^53_2^53 更大使用指数,(有点不准呀) 相同分数的用字典排序
zadd key nx|xx ch incr score value xx:只更新,不添加 nx:只添加,不更新 ch改变的个数, incr 增加member的值,没有则新加 顺序不能乱,score和member要在最后
zcard key 返回元素个数
zcount key start end 返回start到end之间的个数
zincrby key score member 增加member的值
zinterstore z3 2 z1 z2 weights 2 3 aggregate max|sum|min 储存z1 z2 的交集在z3中,交集前先分别乘以2、3,选择交集(相同的元素)结果 intersection
zunionstore .. 后面参数和zinterstore一致,并集,所有元素集合
zrangebyscore key (1 5 limit 2 2 返回 1 <score <=5 的值,偏移2位的2个元素
zrangebyscore key 1 (5 1<=score <5的值
zrangebyscore key -inf +inf 代替min和max,最小值和最大值
zrangebylex key (a (z a < value < z 区间 zrangebylex 的元素的分数最好都一致,否则可能不准?
zrangebylex key [a [z z <= value <= z 区间
zrangebylex key - + 所有的
zlexcount ke min max 字典的计数
zrange key start end withscores
zrevrange key start stop withscores
zrevrangebylex key max min min max和那个相反
zrevrangebyscore key max min 从大到小,其他和另一个一样
zrank key member member在key中的位置,从小到大排序
zrevrank key member 降序中的位置
zrem key member 1 member2.. 移除
zremrangebylex key min max zremrangebylex key [a [b 删除一个区间的元素,和其他zrangebylex一样
zremrangebyrank key start end 移除排序好的包括start 到 end的元素,下标从0开始
zremrangebyscore key min max 移除分数包括min和max的元素
zscore key member member的值
zscan

strings
append key value 不存在则创建,存在则追加
setbit key offset num offset最大值为512M,2^32-1,2^3*2^10*2^10*2^10, 第一次分配内存需要点时间,之后不用
bitcount key start end 第start到end的byte中的1的个数,一个byte8字节,一个最多8个
getbit key offset
bitop and dest src1 src2.. 都为1,那么为1,否则为0
bitop or dest src1 src2.. 或,有一个为1,则为1
bitop xor dest s1 s2.. 只有一个为1,为1,其他都为0
bitop not dest src 取反
bitpos key bit [start] [pos] bit:0,1 start,end查找范围第几到第几字节,如果全1,那么找0会返回end的结尾
decr key
decyby key value 减值
get key
getrange key start end 获得第start到end的字符串,可以为负数
getset key value
incr key
incrby key 1 incr和incrby不能用在value已经是float的key上
incrbyfloat key value
mset key value key1 value..
mget key key2
msetnx key value key1 value1 每个key都不存在,才设置,只要有一个存在,那么久不设置
setex key seconds value 存活秒
psetex key millisecondes value 存活毫秒
set key value [ex seconds, px milliseconds] [nx,xx], 不推荐使用 setex,setnx,psetex
setrange key offset value 覆盖,从offset开始,覆盖value
strlen key 长度

ECHO “Hello World!” 返回消息,没什么用?
ping msg 测试延时或者延时没什么用?
migrate
OBJECT
sort by get 等
touch key 改变最后的访问时间?
wait
unlink 未使用?
bitfield
incr key 计数器,限速器等

connection 5
geo 6
hash 15
hyperloglog 3
keys 24
list 17
set 15
sorted sets 21
string 24

0 0
原创粉丝点击