redis
redis为什么快呢?
基于内存,减少了磁盘IO的开销。单线程:避免多个线程之间切换,锁资源争用的开销IO多路复用模型:单线程轮询描述符,将数据库操作转换为事件,不在网络IO浪费时间优化的底层存储结构
字符串String
1、获取数据:get key
2、添加数据:set key value:(如果key以存在,之前的value将会被覆盖)
3、当key值不存在时添加数据:setnx key value;key值不存在时添加,返回结果1;key值已存在不添加,返回结果0
4、将value数值加某一具体值:incrby key increment;
5、批量添加新的数据:mset keyl valuel key2 value2 key3 value3(中间使用空格隔开)
6、批量获取数据:mget keyl key2 key3(中间使用空格隔开)
列表 list
1、将一个或多个值依次插入列表的表头:1push key value1 value2
2、获取列表中指定下标区间的元素:1range keys tartIndex endIndex
3、将一个或多个值依次插入列表的表尾:rpush key value1 value2
4、删除指定列表的表头元素并返回:1pop key;
5、删除指定列表的表尾元素并返回:rpop key;
6、获取指定列表中指定下标的元素并返回:1index key index
7、获取指定列表的长度:1len key
8、根据count的值移除列表中的指定的某一些元素:lrem keycount value(count>0:从表头开始数前n个count<0:从表尾开始数前n个:count=0:移除所有跟value相同的元素)
集合set
value无序,自动去重
1、将一个或多个元素添加到指定的集合中:sadd key memberl member2...
2、获取指定集合中的所有元素:smembers key
3、判断指定元素在指定集合中是否存在:sismember key member;存在返回1,不存在返回
4、获取指定集合的长度:scard key
5、移除指定集合中一个或者多个元素:srem key memberl member2...(不存的元素会忽略)
6、从指定集合中随机移除一个或者多个元素:spop keycount;
7、指定集合中移动指定一个元素到另一个集合中:smove source destination member;
8、返回差集(一个集合中有,其他集合没有):sdiff key1 key2...
9、返回交集(两个集合共同存在的值):sinter keyl key2...
10、返回并集(两个集合所有值):sunion keyl key2...
哈希hash
1、将一个或多个键值对存储到指定集合中:hset key filed value...
2、获取hash表中指定的filed值:hget key filed;
3、批量获取hash表中指定的filed值:hmget key filedl filed2...;
4、获取指定hash表中的所有filed和value:hgetall key;
5、删除指定hash表中的一个或者多个filed:hdelkey filedl filed2...
6、获取指定hash表中所有的filed的个数:hlen key
7、判断指定hash表中指定的filed是否存在:hexists key filed
8、获取指定hash表中所有filed的列表:hkeys key;
9、获取指定hash表中所有value的值:hvals key;
有序列表zset
1、将一个或者多个member及score加入有序集介:zadd key scorel memberl score2 member2
2、根据指定集合获取指定区问的元素:zrange key startindex endindex
3、根据指定分数区问获取元素:zrangebyscore key min max
4、删除指定集合中一个或多个指定元素:zrem key memberl member2..
5、获取集合中几素的个数:zcard key
6、获取指定儿素的排名:zrank key member(排名从0开始),zrevrank(倒叙排名:从大到小)
7、获取指定集合中在指定分数区间的元素个数:zcount key min max
8、获取指定集合中的指定儿素的分数:zscore key membe
浙公网安备 33010602011771号