您的位置:首页 > 数据库 > Redis

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

2016-04-13 00:00 716 查看
摘要: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息