Redis存储String、存储list、存储set、存储sortedset
String类型
设置值:set key value
如:set age 18
获取值:get key
如:get age
查看所有的key:keys * ,通配符 * /? 在value中查找
keys *b:通配符,查找以b结尾的value的值
keys *b*:查找 value中 有b的
keys ?b:通配符一位,查找value的第二位是字母b
expire a 10:设置key为a的有效时间为10秒,过期删除。存活时间
递增操作:incr key
如:incr age ,将age(数值数据)在原有值基础上+1。如果age不存在,默认其值为0,执行结果为1
递减操作:decr key
如:decr age,将age在原有基础上-1,。如果age不存在,默认其值为0,执行结果为-1
存储list
在Redis中,List类型是按照插入顺序排序的字符串链表
从左侧存值
lpush key value1 value2……:在指定的key所关联的list链表的头部插入所有values,返回list的个数。如果key不存在,新建之。
如:lpush list 1 2 s
从右侧存值
rpush key value1 value2……:在该list的尾部添加元素。
查看list的数据
lrange key start end:start起始索引(0),end结束索引(-1)
如 lrange list 0 -1
删除数据
从左侧删除:lpop key:返回指定key关联的list的头部元素。如果key不存在,返回nil。
如:lpop list
从右侧删除:rpop key:返回……的最后一个元素。
如:rpop list
获取元素个数
llen key:返回指定key关联的list的元素数量。如果不存在,返回0
如:llen list
插入数据:key存在
左侧插入:
lpushx key value :当key值存在时,向关联的list的头部插入value。如果不存在,将不进行插入。
如:lpushx list 1
右侧插入:
rpushx key value:当key值存在时,向关联的list的尾部插入value。如果不存在,将不进行插入。
如:rpushx list 6
删除数据:删除指定个数的指定元素
lrem key count value:如果count>0,则从头向尾遍历并删除;如果count<0,则从尾向头遍历并删除;如果count=0,则删除链表中所有等于value的元素
如:lrem list 2 a:删除list中,从头向尾删除2个元素a
设置元素:设置指定索引的元素
lset key index value:设置list的index的索引值的元素值value,0代表list的头元素,-1代表list的尾元素。执行的是替换操作,将原来的元素覆盖。索引不存在会抛出异常。
如:lset list 3 q:将list的索引3的元素设置为q。
指定元素前后插入新元素:
linsert key before|after source new :在list的第一个source元素前|后插入new元素
如:linsert list before 2 3:在list的第一个2前面插入一个3
rpoplpush命令:
rpoplpush resource destination:将源表的尾部元素弹出,并添加到目标表的头部。
如:rpoplpush list list1。
存储set
添加元素:sadd key value1 value2……:将多个元素添加到set类型中。
如:sadd mySet d 3 5 g h 6
删除元素:srem key members
如:srem mySet 1
查看元素:smembers key
如:smembers mySet
查看指定元素是否存在:sismember key member :0代表不存在,1代表存在
如:sismember set 1
获取set中的数量:scard key
如:scard set,结果为5
随机返回set中一个成员:srandmember key
如:srandmember set
交并查集:
sdiffstore destination key1 key2:将key1、key2相差的成员存储在destination上
sinterstore destination key[key…]:将返回的交集存储在destination上
sunionstore destination key[key…]:将返回的并集存储在destination上
存储sortedset
sorted-set和set类型相似,都不允许重复成员出现在一个set中。Sorted-set中每一个成员都会有一个分数相关联,Redis通过分数来为集合中的成员进行从小到大的排序。数据不能重复,分数可以,数据可以排序(通过分数)。
添加元素:zadd key score1 member1 score2 member2……:在添加重复key时,分数会被覆盖
如:zadd sort 10 zhangsan 20 lisi 30 wangwu
获取指定成员的分数:zscore key member
如:zscore sort wangwu:获取sort中的wangwu的score
获取成员的个数:zcard key
如:zcard sort,结果是3
删除元素:zrem key member1 member2
如: zrem sort wangwu。
范围查找:zrange key start end [withscores]:获取集合中角标为start-end的成员,withscores参数表明返回的成员包含其分数。根据分数排序,0 -1 :全部
如:zrange sort 0 1 withscores
倒叙查找:zrevrange key start end [withscores]:倒叙查找
如:zrevrange sort 0 -1 withscores
zrangebyscore key min max [withscores] [limit offset count]:返回分数在[min,max]的成员并按照分数从低到高排序.[withscores]:显示分数;
[limit offset count]:offset,表明从脚标为offset的元素开始并返回count个成员。
zincrby key increment member:设置指定成员的增加的分数。返回值是更改后的分数。
zcount key min max:获取分数在[min,max]之间的成员
zrank key member:返回成员在集合中的排名。(从小到大)
zrevrank key member:返回成员在集合中的排名。(从大到小)
Redis事务:MULTI/EXEC/DISCARD
multi:开启事务,标记一个事务块的开始。
exec:提交,执行所有事务块内的命令。
discard:取消事务,放弃执行事务块内的所有命令。