redis的数据结构基本操作

来源:互联网 发布:淘宝数据公式pv uv 编辑:程序博客网 时间:2024/06/07 03:20

Redis的数据结构:

一:String(字符串)

set+变量名+变量值就可以存储数据,通过get+变量名获取对应的变量值


del+变量名,就可以删除对应的变量,当再次获取时会显示控制


若我们将一个变量赋予为1,系统会认其为String类型,在使用incr (加一操作时)又会转换为Integer类型


若使用incr在一个未定义过的变量上,系统会将变量赋值0在进行加一操作


decr的使用和incr一样。

incrby +变量名+n :就是在该数字的基础上加n (decrby使用如上)

append+变量名+str


二.哈希

hset+变量名+key+value存储

hget+变量名+key获取值


一个变量名下可以有多个key-value


hmset +变量名+多个key-value

hgetall 获取该变量名下的所有key-value


hdel +变量名 删除操作


hincrby +变量名+key+n 加n操作



hexists 判断是否存在某个key



hlen 获取属性个数 

hkeys 获取所有key

hvals 获取所有的value



三.list


两端添加 

lpush list从左端添加元素

lrange list +firstindex +secondindex 

从左端输出从firstindex 到secondindex的元素

如果secondIndex为负数,则是到倒数第几个数为止


两端弹出

lpop 左端弹出,弹出后3没了 ,llen查看链表长度为5.


lpushx 操作同lpush差不多


lremove listname count value :

若count>0 则是从左边开始删除count 个值为value的元素

若count<0 则是从右边开始删除count个值为value的元素

当count=0  删除所有值为value的元素


lset 在指定位置插入元素



linsert listname before/after value insertvalue :在第一个指定的元素前面/后面插入 insert value



rpoplpush mylist1 mylist2  从mylist1的右边pop出一个元素加到mylist2的左边

常用于多个程序之间的消息交互



Set


sadd存储 添加已有的元素 set不变srem删除smembers访问
sismember是否存在
sdiff 求的是不同 得出来的值是第一个和第二个比较,第二个所没有的
sinter 求交集
sunion并集
scard集合长度
srandmember随机返回一个数据

sdiffstore list1 list2 list3 将listt2和list3相差的成员存储到list1中 
a1与a2相比多的是b 所以b储存到a4中
sinterstore 将交集储存
sunionstore将并集存储

四.sorted-set
sorted-set 的成员在集合中是有序的
应用场景:游戏的排名,微博的热搜等
zadd添加
注意:添加已有的元素 改变的值为 0
zscore获取值
zcard长度
zrem删除
zrange 显示数据  

zrange显示数据   withscores
zrevrange从大到小排序
zremrangebyrank start stop 依据序列删除

zremrangebyscore score1 score2 删除score1和score2之间的元素,包括score1 score2
zrangebyscore score1 socre2 查询 
score1 socre2之间分数的元素 
zrangebyscore score1 socre2  limit 0 2 
zincrby +变量名+要加的值+key 
zcount  score1 socre2 在两个分数之间元素的个数