Redis基础总结

一、介绍

1.Redis是一个基于内存的键值型(key-value)数据库(NoSQL),键一般是String类型,值有多种形式 如:String、Hash、List、Set、SortedSet、GEO等

2.特点:单线程、低延迟、速度快(基于内存)、支持数据持久化、支持主从 分片

二、数据类型

1.String

可分为三类 普通的字符串、整数类型、浮点类型。不论哪种类型底层都是基于字节数组。字符串类型最大空间不能超过512m

常用命令:

1.1 set 添加或者修改已经存在的一个String类型的键值对

1.2 get 根据key获取value

1.3 mset 批量添加多个String类型的键值对

1.4 mget 根据多个key获取多个String类型的value

1.5 incr  每执行一次,让这个个整形的key自增1

1.6 incrby 让一个整形的key自增指定大小

1.7 incrbyfloat 让一个浮点形的key自增指定大小

1.8 setnx 添加一个string类型的键值对,如果key存在则不添加

1.9 setex 添加一个string类型的键值对,并且指定有效期

2.Hash类型,

也叫散列其value是一个无序字典类似Java的hashmap

常用命令:


2.1 HSET key field value:添加或者修改hash类型key的field的值
2.2 HGET key field:获取一个hash类型key的field的值


2.3 HMSET:批量添加多个hash类型key的field的值
2.4 HMGET:批量获取多个hash类型key的field的值


2.5 HGETALL:获取一个hash类型的key中的所有的field和value


2.6 HKEYS:获取一个hash类型的key中的所有的field
2.7 HVALS:获取一个hash类型的key中的所有的value


2.8 HINCRBY:让一个hash类型key的字段值自增并指定大小,只能是整数或者浮点数才能自增


2.9 HSETNX:添加一个hash类型的key的field值,如果这个field存在,则不执行

3.List类型

类似java的linklist,可以看成双向链表,可以支持正向和反向检索

     特征:有序、元素可重复、插入和删除快查询一般 使用场景:朋友圈点赞的先后顺序,评论列表等

   常用命令


3.1 LPUSH key element.. 向列表左侧插入一个或多个元素

3.2 RPUSH key element… 向列表右侧插入一个或多个元素

3.3 LPOP key:移除并返回列表左侧的第一个元素,没有则返回nil
3.4RPOP key:移除并返回列表右侧的第一个元素

list后的1 表示取一个


 

3.5LRANGE key starend:返回一段角标范围内的所有元素(左侧第一个为0号)

 现在列表为 b a 1 2

3.6BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是直接返回nil

4.set类型

类似java的hashset 可以看做value为null的hashset 

特征:无序、元素不可重复、查找快、支持交集并集差集

常用命令


4.1 SADD key member... 向set中添加一个或多个元素
4.2 SREM key member... 移除set中的指定元素
4.3 SCARD key 返回set中元素的个数
4.4 SISMEMBER key member 判断一个元素是否存在于set中
4.5 SMEMBERS 获取set中的所有元素



4.6 SINTER key1 key2.. 求key1与key2的交集
4.7 SDIFF key1 key2.. 求key1与key2的差集
4.8 SUNION key1 key2.. 求key1和key2的并集

5.SortedSet类型


SortedSet是一个可排序的set集合,与java中的TreeSet有些类似,但底层数据结构却差别很大。Sortedset中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表(SkipList)加 hash表

特征:可排序、元素不重复、查询速度快    使用场景:实现排行榜功能等

常用命令


5.1 ZADD key score member 添加一个或多个元素到sorted set,如果已经存在则更新其score值5.2 ZREM key member 删除sorted set中的一个指定元素


5.3 ZSCORE key member 获取sorted set中的指定元素的score值


5.4 ZRANK key member 获取sorted set中的指定元素的排名(排名从0开始)


5.5 ZCARD key 获取sorted set中的元素个数
5.6 ZCOUNT key min max 统计score值在给定范围内的所有元素的个数


5.7 ZINCRBY key increment member 让sorted set中的指定元素自增,步长为指定的increment值5.8 ZRANGE key min max 按照score排序后,获取指定排名范围内的元素


5.9 ZRANGEBYSCORE key min max 按照score排序后,获取指定score范围内的元素


5.10 ZDIFF、ZINTER、ZUNION 求差集、交集、并集
注意:所有的排名默认都是升序,如果要降序则在命令的Z后面添加REV即可

6.GEO


GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GE0的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。

常用的命令


GEOADD:添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member)
GEODIST:计算指定的两个点之间的距离并返回
GEOHASH:将指定member的坐标转为hash字符串形式并返回
GEOPO5:返回指定member的坐标
GEORADIUS:指定圆心、半径,我到该圆内包含的所有member,并按照与圆心之间的距离排序后返回。6,2以后已废弃

GEOSEARCH:在指定范围内搜索member,并按照与指定点之间的距离排序后返回。范围可以是圆形或矩形。6.2.新功能

GEOSEARCHSTORE:与GEOSEARCH功能一致,不过可以把结果存储到一个指定的key。6.2.新功能

7.bitMap


Redis中是利用string类型数据结构实现BitMap,因此最大上限是512M,转换为bit则是2^32个bit位

常用的命令


SETBIT:向指定位置(offset)存入一个0或1
GETBIT:获取指定位置(offset)的bit值
BITCOUNT:统计BitMap中值为1的bit位的数量
BITFIELD :操作(查询、修改、自增)BitMap中bit数组中的指定位置(offset)的值

BITFIELD RO:获取BitMap中bit数组,并以十进制形式返回

BITOP:将多个BitMap的结果做位运算(与、或、异或)

BITPOS:查找bit数组中指定范围内第一个0或1出现的位置

三、Redis的通用命令

 1.KEYS 查看符合模板的所有key(Redis是单线程 不建议在生产环境设备上使用)


 2.DEL 删除一个指定的key


3.EXISTS 判断key是否存在


4.EXPIRE 给一个key设置有效期,有效期到期时该key会被自动删除
5.TTL 查看一个KEY的剩余有效期 (过期为-2 ,永久有效为-1)

四、官方网站及官网命令文档

1.Redis - The Real-time Data Platform官方网站Redis - The Real-time Data Platform

2.官网命令文档Commands | Docs (redis.io)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值