redis各种数据类型操作

一、字符串

set key value [ex 秒数] / [px 好秒数] [nx]/[xx]

注意:ex,px同时设置得话,以px为准

demo:set name aaa ex 10 px 1000 实际上的有效期是1000毫秒

nx:表示key不存在时,执行操作

xx:表示key存在时,执行操作

mset multi set,一次性设置多个键值 demo:mset key1 v1 key2 v2 ... keyn vn

mget key1 key2 ...keyn 一次性获取多个key的值

setrange key offset value 作用:把字符串的offset偏移字节,改成value

redis 127.0.0.1:6379> set greet hello
OK
redis 127.0.0.1:6379> setrange greet 2 x
(integer) 5
redis 127.0.0.1:6379> get greet
"hexlo"
redis 127.0.0.1:6379> 

如果偏移量>字符长度,该字符串自动补0x00

getrange key start stop

作用:获取字符串中[start,stop]范围的值和PHP中substr效果一致(下标,左侧从0开始,右侧从-1开始)

getset key newvalue

获取并返回旧值并返回新值

redis 127.0.0.1:6379> set status sleep
OK
redis 127.0.0.1:6379> getset status 'wake up'
"sleep"
redis 127.0.0.1:6379> get status
"wake up"

incr decr 自增和自减 1

incrby key number decrby key number 自定义数字

**incrbyfloat/decrbyfloat key float **

setbit key offset value

设置offset对应二进制位上的值,返回该位上的值

ascii
A 65 0100 0001
a 97 0110 0001

redis 127.0.0.1:6379> set char A
OK
redis 127.0.0.1:6379> setbit char 2 1
(integer) 0
redis 127.0.0.1:6379> get char
"a"
redis 127.0.0.1:6379> setbit char 2 0
(integer) 1
redis 127.0.0.1:6379> get char
"A"

lpush key value

作用:把值插入到链接头部 rpush 反之

rpop key

作用:返回并删除链表尾部元素 lpop 反之

lrange key start stop

作用:返回链表中[start,stop]中的元素。左数从0开始,右数从-1开始

lrem key count value 作用:从key链表中删除value值;删除count的绝对值个value后结束 count>0 从表头开始 <0 从表尾开始

redis 127.0.0.1:6379> lpush anwser a b c d a a a
(integer) 7
redis 127.0.0.1:6379> lrange anwser 0 -1
1) "a"
2) "a"
3) "a"
4) "d"
5) "c"
6) "b"
7) "a"
redis 127.0.0.1:6379> lrem anwser 2 a
(integer) 2
redis 127.0.0.1:6379> lrange anwser 0 -1
1) "a"
2) "d"
3) "c"
4) "b"
5) "a"

ltrim key start stop

作用:剪切key对应的链接,切[start,stop]一段,并把该字段重新赋值给key

lindex key index

返回index索引的值

llen key 计算链表的元素个数

linsert key after|before search value

三、集合 无序性 确定性 唯一性

sadd key value1 value2

作用:往集合中增加元素

srem value1 value2

删除集合中集为value1 value2的元素 返回值:忽略不存在的集合后,真正删除的元素的个数

spop key

返回并删除集合中key中1个随机元素

srandmember key

返回集合key中随机的一个元素

sismember key value

判断value是否在key集合中

smembers key 查看key的值

scard key 返回集合中元素的个数

//### 多个集合操作 smove key key1 value

将key中的value移动到key1中

sinter key1 key2 key3

求出三个集合的并集,并返回

sunion key1 key2 key3

求出三个集合的交际 并返回

sdiff key1 key2 key3

求出三个集合的差集

四、有序集合 order set

zadd key score1 value1 score2 value2 ......

zrange key start stop 查看所有的

zrange key start stop withscores 查看所有的(包括排名)

zrank key member 查询这个值在集合中的排名

zrevrank key member 查询member的排名(降序)

zrem key value1 value2 ...

zremrangebyscore key min max 根据分数删除,删除分数在min和max之间的

zremrangebyrank key [第几名,第几名] 按照排名删除

zcard key 统计当前key的元素个数

zcount key min max 统计这个分数之间的个数

zinterstore destination numkeys key1 [key2......]

[WEIGHTS weight [weight ...]]

[AGGREGATE SUM|MIN|MAX]

求key1,key2的交集,key1,key2的权重分别是weight1,weight2;聚合方法用:sum|min|max;聚合的结果保存在dest集合内

redis 127.0.0.1:6379> zadd lisi 3 cat 5 dog 6 pig
(integer) 3
redis 127.0.0.1:6379> zadd wangwu 2 cat 6 dog 8 pig
(integer) 3
redis 127.0.0.1:6379> zadd wangwu 1 rabbit
(integer) 1
redis 127.0.0.1:6379> zinterstore result lisi wangwu aggregate sum
(error) ERR value is not an integer or out of range
redis 127.0.0.1:6379> zinterstore result 2 lisi wangwu aggregate sum
(integer) 3
redis 127.0.0.1:6379> zrange result 0 -1 withscores
1) "cat"
2) "5"
3) "dog"
4) "11"
5) "pig"
6) "14"

五、hash结构 类似PHP的关联数组

hset key field value 设置单个值

hmset key field value field1 value1 设置多个值

hsetall key 查看当前key的值

hget key field 获取当前key下当前名称的值

hgetall key 获取所有的数据

hdel key field 删除

hlen key 返回key中的个数

hexists key field 查看当前key有没有这个字段

hincrby key field integer 把key中的field域的值增长

hincrbyfloat key field float

hkeys key 返回key中所有的field

hvals key 返回key中所有的value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值