建设网站的颜色,网站介绍流程,755权限 wordpress,可口可乐网络营销推广方案单线程#xff1a;每个命令具备原子性
低延迟#xff0c;速度快#xff08;基于内存、IO多路复用、良好的编码#xff09;
支持数据持久化
支持主从集群、分片集群
支持多语言客户端
2.Redis数据库介绍
Redis是一个key-value的数据库#xff0c;key一般是String类型…单线程每个命令具备原子性
低延迟速度快基于内存、IO多路复用、良好的编码
支持数据持久化
支持主从集群、分片集群
支持多语言客户端
2.Redis数据库介绍
Redis是一个key-value的数据库key一般是String类型不过value的类型多种多样 3.Redis的通用命令
KEYS查看符合模板的所有keyKEYS *查询所有键不建议在生产环境设备上使用因为如果数据足够多模糊匹配可能需要很长时间来查询又因为Redis是一个单线程。因此不建议在主设备上使用。 DEL删除一个指定的keyDEL name删除name,返回值是删除的数量命令DEL k1 k2 k3 批量删除。 EXISTS判断key是否存在 EXPIRE给key设置有效期有效期到期时该key会被自动删除
TTL查看一个key的剩余有效期 4.String类型
String类型是Redis中最简单的存储类型。其value是字符串不过根据字符串的格式不同又可分为3类
string普通字符串
int整形类型可自增、自减操作
float浮点类型可做自增、自减操作
不管那种格式底层都是字节数组形式存储只不过编码方式不同。字符串类型的最大空间不能超过512M 常见命令
SET添加一个String类型的键值对或者修改已经存在的一个String类型的键值对
GET根据key获取String类型的value MSET批量添加多个String类型的键值对
MGET根据多个key获取多个String类型的value
INCR让一个整型的key自增1 INCRBY让一个整型的key自增并指定步长
INCRBYFLOAT让一个浮点类型的数字自增并指定步长
SETNX添加一个String类型的键值对前提是这个key不存在否则不执行
SETEX添加一个String 类型的键值对并且指定有效期
5.key的结构
假如一个用户的id叫做id一个商品的id也是id除了更改名字来区别好像没有别的法子了因为Redis没有表的概念那么用户和商品就会冲突因此Redis的key允许有多个单词形成层级结构多个单词之间用“:”隔开格式如下
项目名:业务名:类型:id 6.Hash类型
Hash类型也叫散列其value是一个无序字典类似于java的HashMap结构。
String结构是将对象序列化为JSON字符串后存储当需要修改对象某个字段时很不方便。Hash结构可以将对象中的每个字段独立存储可以针对单个字段做CRUD非常人性化 Hash类型命令
HSET key field value添加或者修改hash类型的key的field的值一次只能设置一个field
HGET key field获取一个hash类型key的field的值 HMSET批量添加多个hash类型key的field的值
HMGET批量获取多个hash类型key的field的值
HGETALL获取一个hash类型的key中的所有field和value HKEYS获取一个hash类型的key中的所有field HVALS获取一个hash类型的key的所有value HINCRBY让hash类型key的字段自增并指定步长
HINCRBY user:3 age 2 HSETNX添加一个hahs类型的key的field值前提是这个field不存在否则不执行
7.List类型
Redis中的List类型于java的LinkedList类似可以看做是一个双向链表既可以支持正向索引也可以支持反向索引。
特征也于LinkedList类似
有序
元素可以重复
插入和删除快
查询速度一般
List的常见命令有
LPUSH key element ... 向列表左侧插入一个或多个元素一直向左侧加元素
LPOP key移除并返回列表左侧的第一个元素没有则返回null先进后出栈的思想
RPUSH key element ... 向列表右侧插入一个或多个元素
RPOP key移除并返回右侧第一个元素如果LPUSH存RPOP取那就是队列的思想
LRANGE key star end返回这一段范围内的所有元素start和end分别是list的索引索引从0开始
BLPOP和BRPOP于LPOP、RPOP类似只不过在没有元素时等待指定时间而不是直接返回nil
8.Set类型
Redis的Set结构与Java中的HashiSet类似可以看做是一个value为null的HashMap。以为也是一个hash表因此具备HashSet类似的特征
无序
元素不可重复
查找快
支持交集、并集、差集等功能
Set类型的常见命令
SADD key member ... 向set中添加一个或者多个元素 SREM key member ... 移除set中指定元素
SCARD key返回set中元素的个数 SISMEMBER key member判断一个元素是否存在于set中存在返回1不存在返回0
SMEMBERS key获取set中的所有元素 SINTER key1 key2 ... 求key1与key2的交集 SDIFF key1 key2 ... 求key1与key2的差集
SUNION key1 key2 ... 求key1与key2的并集 9.SortedSet类型
Redis的SortedSet是一个可排序的set集合与Java的TreeSet有些类似但是底层数据结构差别很大。SortedSet中每一个元素都带有一个score属性可基于score属性对元素排序底层的实现是一个跳表SkipList加hash表。SortedSet具备以下特性
可排序性
元素不重复
查询速度快
因为SortedSet的可排序特性经常被用来实现排行榜这样的功能。
SortedSet的常见命令有
ZADD key score member添加一个或者多个元素到sortedset如果已经存在则更新score值
ZREM key member 删除 sortedset中的一个指定元素
ZSCORE key member获取sortedset中指定元素的socre的值 ZRANK key member获取sortedset中指定元素的排名ZREVRANK key member是倒序。 ZCARD key获取sortedset 中元素的个数 ZCOUNT key min max 统计score值在给定范围内的所有元素的个数闭区间的min~max ZINCRBY key increment member让sortedset中的指定元素的score值自增步长为指定的increment值
ZRANGE key min max按照score排序后取指定排名范围内的元素min和max是索引从0开始 ZRANGEBYSCORE key min max按照sore排序后获取指定score范围内的元素min和max是闭区间 ZDIFF、ZINTED、ZUNION求差集、交集和并集