做视频素材网站,网站结构是体现的,建设网站外包公司,网站做app有什么意义Redis
Redis特征
键值型#xff0c;value支持多种不同数据结构#xff0c;功能丰富单线程#xff0c;每个命令具有原子性低延迟#xff0c;速度快#xff08;基于内存#xff0c;IO多路复用#xff0c;良好的编码#xff09;支持数据持久化支持主从集群#xff0c;分…Redis
Redis特征
键值型value支持多种不同数据结构功能丰富单线程每个命令具有原子性低延迟速度快基于内存IO多路复用良好的编码支持数据持久化支持主从集群分片集群支持多语言客户端
Redis通用命令
通用指令时部分数据类型的都可以使用的指令常见的有
KEYS查看符合模板的所有key不建议在生成环境设备上使用DEL删除一个指定的keyEXISTS判断key是否存在EXPIRE给一个key设置有效期有效期到期时该key会被自动删除TTL查看一个key的有效期
通过help[command]可以查看一个命令的具体用法例如 String类型
String类型也就是字符串类型是Redis中最简单的存储类型
其value是字符串不过根据字符串的格式不同可以分为三类
string普通字符串int整数类型可以自增自减操作float浮点类型可以自增自减操作
底层都是字节数组形式存储只不过编码方式不同字符串类型的最大空间不能超过512
String类型的常见命令
SET添加或者修改已经存在的一个Sting类型的键值对GET根据key获取String类型的valueMSET批量添加多个String类型的键值对MGET根据key获取多个String类型的valueINCR让一个整型的key自增1INCEBYU让一个整型的key自增并制定步长例如incrby num 2让num值自增2INCRBYFLOAT让一个浮点类型的数字自增并指定步长SETNX添加一个String类型的键值对前提是这个key不存在否则不执行SETEX添加一个String类型的键值对并且指定有效期
Hash类型
Hash类型也叫散列其value是一个无序字典类似于Java中的HashMap结构
String结构式将对象序列化为JSON字符串后存储当需要修改对象某个时很不方便
Hash结果可以将对象中的每个字段独立存储可以针对单个字段做CRUD
Hsh类型的常见命令
HSET key field value添加或修改hash类型key的field的值HGET key field获取一个hash类型key的field的值HMSET批量添加多个hash类型的key的field的值HMGET批量获取多个hash类型的key的field值HGETALL获取一个hash类型的key中的所有field和valueHKEYS获取一个hash类型的key中的所有的fieldHVALS获取一个hash类型的key中的所有valueHINCRBY让一个hash类型key的字段值自增并指定步长HSETNX添加一个hash类型的key的field值前提是这个field不存在否则不执行
List类型
Redis中的List类型与Java中的LinkedList类型可以看做是一个双向链表结构既可以支持正向检索也可以支持反向检索
特征与LinkedList类似
有序元素可以重复插入和删除快查询速度一般
常用来存储一个有序数据例如朋友圈点赞列表评论列表
List类型的常见命令
LPUSH key element ...向列表左侧插入一个或多个元素LPOP key移除并返回列表左侧的第一个元素没有则返回nilRPUSH key element ...向列表右侧插入一个或多个元素RPOP key移除并返回列表右侧的第一个元素LRANGE key star end返回一段角标范围内的所有元素BLPOP和BRPOP与LPOP和RPOP类型只不过在没有元素时等待指定时间而不是直接返回nul
Set类型
Redis的Set结构与Java中的HashSet类似可以看做是一个value为null的HashMap因为也是一个hash表因此具备与HashSet类似的特征
无序元素不可重复查找快支持交集并集差集等功能
Set类型的常见命令
SADD key member ...向set中添加一个或多个元素SREM key member ...移除set中的指定元素SCARD key返回set中元素的个数SISMEMBER key member判断一个元素是否存在于set中SISMEMBES获取set中的所有元素SINTER key1 key2 ...求key1与key2的交集SDIFF key1 key2 ...求key1与key2的差集SUNION key1 key2 ...求key1与key2的并集
SortedSet类型
Redis的SortedSet是一个可排序的set集合与Java中的TreeSet有些类似但底层数据结构差别很大。SortedSet中的每一个元素都带有score属性可以基于score属性对元素排序底层的实现是一个跳表加hash表。SortedSet具备下列特性经常被用来实现排行榜的功能
可排序元素不重复查询速度快
SortedSet类型的常见命令
ZADD key score member添加一个或多个元素到sorted set 如果已经存在则更新其score值ZREM key member删除sorted set中的一个指定元素ZSCORE key member获取sorted set 中的指定元素的score值ZRANK key member获取sorted set中的指定元素的排名ZCARD key获取sorted set中的元素个数ZCOUNT key min max统计score值在给定范围内的所有元素个数ZINCRBY key increment member让sorted set中的指定元素自增步长指定的increment值ZRANGE key min max按照score排序后获取指定排名范围内的元素ZRANGEBYSCORE key min max按照score排序后获取指定score范围内的元素ZDIFF、ZINTER、ZUNION求差集、交集、并集
注意所有的排名默认都是升序如果要降序则在命令的Z后面添加REV即可