Redis 五种数据类型之简单使用

  • redis之字符串类型

命名一个键的建议:对象类型:对象ID:对象属性


1:赋值与取值

set key maimai

get key

2:递增数字

incr num

3:增加指定的整数

incyby num 2

4:减少指定的整数

decr num  ==decrby num 1

decrby num 2

5:增加浮点数

incrbyfloat num 3.3

incrbyfloat num 1E+2   ==  10的2次方+3.3=103.3

6:向尾部追加值

append num hello

7:获取字符串的长度

strlen num

8:同时获取/设置多个键值

mset key1 mai1 key2 mai2 key3 mai3

mget key1 key2 key3

9:位操作[索引从0开始]

a的二进制

01100001

b的二进制

01100010

例子:

set foo a

getbit foo 1 =第二位的二进制数字=1

setbit foo 6 1 把第七位变为1 把a变为b

bitcount foo 计算foo中二进制为1的个数  

bitcount foo 0 1 计算前二个字节的中1的个数


set foo1 a

set foo2 b

bitop or foo3 foo1 foo2

get foo3 ==c


  • redis之哈希类型

1:赋值与取值

hset key field value  插入返回1 更新返回0

hget key field

hmset key field value field value

hmget key field field

hgetall fielf

2:判断字段是否存在

hexists key filed 存在返回1

3:当字段不存在时赋值,存在时不赋值

hsetnx key field value

4:增加数字

hincrby key field increment

5:删除字段

hdel key field

6:只获取字段名或字段值

hkeys key

hvals key

7:获得字段数量

hlen key


  • redis之列表类型

1:向列表两端添加元素

lpush key value value ... 依次向左添加

rpush key value value ...

2:向列表两端弹出元素

lpop key 依次从左弹出

rpop key

for:

lpush maimai 1 2 3  存储: 3 2 1

lpop maimai         弹出:3

rpop maimai         弹出:1

模拟栈和队列

栈:先进后出 FILO   lpush和lpop rpush和rpop

队列:先进先出 FIF0 lpush和rpop rpush和lpop

3:获得列表中元素的个数

llen key

4:获得列表片段

lrange key start stop

lrange maimai 0 -1 可以获得所有元素

5:删除列表中指定的值

lrem key count value

删除列表中前count个值为value的元素

6:获取/设置指定索引的元素值

lindex key index

lset key index value

7:之保留列表指定的片段,删除指定范围之外的所有元素

ltrim key start stop

8:向列表中插入元素

linsert key before/after pivot value

从左到右查找pivot元素,根据第二个参数插入value

9:将元素从一个列表转到另一个列表

poplpush key1 key2

从key1列表右侧弹出一个元素到key2列表的左侧


  • redis之集合类型

1:添加删除元素

sadd key value value...

srem key value value...

2:获取集合中所有的元素

smembers key

3:判断元素是否存在集合中 存在返回1  反之0

sismember key value

4:集合间运算

sdiff key1 key2... 差集  属于1不属于2的

sinter key1 key2... 交集 即属于1也属于2

sunion key1 key3... 并集 1和2之和

5:获得集合中元素的个数

scard key

6:进行集合运算并将结果存储

sdiffstore destination key

sinterstore destination key

sunionstore destination key

7:随机获得集合中的元素

srandmember key count

8:从集合中弹出一个元素

spop key

随机弹出一个元素


  • redis之有序集合

3:列表不能简单的调整某个元素的位置,但是有序集合可以(通过改变这个元素的分数)

4:有序集合比列表类型更耗内存

1:增加元素[草、不存在添加,存在修改]

add key score value score value score value

2:获得元素的分数

zscore key value

3:获得排名在某个范围的元素列表

zrange key start stop [withscores] 按照分数从小到大

zrevrange key start stop [withscores] 按照分数从大到小输出

4:获得指定分数范围的元素

zrangebyscore key min max [withscores] [limit offest count]

zrevrangebyscore key max min [withscores] [limit offest count]

返回min到max之间从小到大输出

for:zrangebyscore maimai 80 100

如果希望分数范围不不包含端点值,在分数前面加(

zrangebyscore maimai 80 (100    包含80 不包含100

zrangebyscore maimai (80 (100   不包含80 不包含100

zrangebyscore maimai 80 100 limit 1 5

获取80到100的从第二个开始的5个人

zrevrangebyscore maimai 100 0 limit 0 3

获取分数低于或者等于100 的前三个人

5:增加某个元素的分数[负数代表减分]

zincrby key score value

6:获取集合中元素的数量

zcard key

7:获得指定范围内元素的个数

zcount key min max

8:删除一个或多个元素

zrem key value value...

9:按照排名范围删除元素

zremrangebyrank key start stop

10:按照分数范围删除元素

zremrangebyscore key min max

11:获得元素的排名

zrank key value  按照元素分数从小到大的顺序获得指定元素的排名

zrevrank key value 按照元素分数从大到小的顺序获得指定元素的排名

12:计算有序集合的交集

zinterstore maimai numkeys key1 key2.. weights weight weight.. aggregate [sum,min.max]

for:

zadd r1 1 a 2 b

zadd r2 10 a 20 b

zinterstore maiami 2 r1 r2 weights 1 0.1 aggregate sum

得到 a 2 b 4


转载于:https://my.oschina.net/honglongwei/blog/657854

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值