数据结构:
1.String
添加:
set key value
get key
getset key value (先get再set)
incr key (key对应value原子性递增1)
decr key (key对应value原子性递减1)
incrby key increment (key对应value原子性递增 increment )
decrby key decrement
append key value (追加值)
2.List
特点:
链表的所有元素被移除,链表也从数据库中删除
添加:
前:lpush key values[1,2]
后:rpush key values[1,2]
仅当key存在
前:lpushx key values
后:rpushx key values
查看:
Lrange key start end (start end从0开始,为-1表示最后一个)
lien key 链表数量
删除:
lpop key
rpop key
扩展:
rpoplpush resource destination 将尾部弹出放到头部
llen key 数量
lset key index value:设置链表中的index的脚标的元素值,0代表链表的头元素,-1代表链表的尾元素。
linsert key before|after pivot value:在pivot元素前或者后插入value这个元素。
lrem key count value:删除count个值为value的元素,如果count大于0,从头向尾遍历并删除count个值为value的元素,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素。
3.Set
特点:和java中Set相仿,可以在服务器端完成Set集合的聚合计算
添加删除:
sadd key values[valuel. value2...]:向set中添加数据,如果该key的值已有则不会重复添加
srem key members[memberl. member2...]:删除set中指定的成员
获得集合的元素:
smembers key:获取:et中所有的成员
sismember key member:判断参数中指定的成员是否在该set中,1表示存在,。表示不存在或
者该key本身就不存在。(无论集合中有多少元素都可以极速的返回结果)
集合的差集运算A-B:
sdiff keyl key2...:返回keyl与key2中相差的成员,l}ij.f-I_'} key fI}JJ}ItiJ=1:有关。即}}} ILII-fl:集。
集合的交集运算A N B
sinter keyl key2 key3...:返交集。
集合的并集运算A U B
sunion keyl key2 key3二:返回并集。
扩展:
scard key:获取set中成员的数量
srandmember key:随机返回set中的一个成员
sdiffstore destination keyl key2:将key1. key2相差的成员存储在destination上
sinterstore destination key[keys]:将返回的交集存储在destination上
sunionstore destination key[keys]:将返回的并集存储在destination上
应用场景:
存唯一值,保存某些对象依赖关系
4.Sort-Set
1.特点:
每个成员都有score与之对应,并按score从小到大排序,(应用场景:排行榜);
2.操作:
添加:
元素:zadd key score member score2 member2...
获得
单个元素:zscore key member
成员数量:zcard key
删除:
zrem key member
范围查询:
角标:zrange key start end [withscores]
分数从大到小排序后返回索引:zrevrange key start stop[withscores]
按排名范围删除元素:zremrangebyrank key start stop
zrangebyscore key min max [withscores] [limit offset count]:返回分数在[min,max]的成员并按照分
数从低到高排序。[withscores]:显示分数;[limit offset count]: offset,表明从脚标为offset的元
素开始并返回cou nt个成员。
zincrby key increment member:设置指定成员的增加的分数。返回值是更改后的分数。
zeount key min max:获取分数在[min,max]之间的成员
zrank key member:返回成员在集合中的排名。(从小到大)
zreVrank key member:返回成员在集合中的排名。(从大到小)
5.hash
1)hset key field value:为指定的key设定field/value对(键值对)。
2)hgetall key:获取key中的所有filed-vaule
3)hget key field:返回指定的key中的field的值
4)hmset key fields:设置key中的多个filed/value
5)hmget key fileds:获取key中的多个filed的值
6)hexists key field:判断指定的key中的filed是否存在
7)hlen key:获取key所包含的field的数量
8)hincrby key field increment:设置key中filed的值增加increment,如:age增加20
redis 特性
redis多数据库(16个)
下标从0到15,默认0
select x(选择哪个数据库)
移植key到数据库
move newkey 1
消息订阅与发布
subscribe xxx
psubscribt s*
publish channel content 在channel频道发布消息
1.事务
事务开启:multi
事务保存:exec
回滚:discard
特点:事务的原子性(停止响应其他服务端请求);事务中出错被忽略
2.持久化
RDB模式 : 在指定时间间隔内将内存中数据集快照持久化
redis.conf配置文件
save 900 1
save
save 30 10000 每30秒若有10000个key变动则内存快照
AOF模式 : 写日志的方式记录操作