String
字符串类型数据(整型数据、JSON串等)
String命令
增加
SET KEY_NAME VALUE //同key值修改值
SETNX key value //同key值不修改,是解决分布式锁的方式之一
MSET key value [key value] //设置多个键值
获取
GET KEY_NAME
MGET key [key] //获取多个键值
数值自增减
INCR KEY_Nname (INCRBY KEY_Name 增量值)
DECR KEY_NAME (或DECRBY KEY_NAME 减值)
获取并修改
GETSET KEY_NAME VALUE
String长度
STRLEN key
应用场景
- String通常用来保存单个字符串或JSON字符串数据
- 因为String是二进制安全的,所以完全可以将图片文件内容作为字符串来存储
- 计数器,INCR等指令本身就有原子性操作的特性。
Hash
一个JavaBean。是一个String类型的field和value的映射表。hash特别适合用于存储对象。Redis中每个hash可以存储232 - 1键值对(40多亿)。可以看做是一个KEY和VALUE的Map容器,该类型非常适合于存储减值对象信息。该类型的数据仅占有很小的磁盘空间(比JSON还小)
Hash命令
增加/修改
HMSET key field value [field value]
查询
HMGET key field [field]
HGETALL key
查看字段数
HLEN key
删除
HDEL key field [field]
子字段自增
HINCRBY key field increment
是否存在某字段
HEXISTS key field
删除时
删除各个field redis中保证无value key自动消失
使用del命令
List
底层是一个双链表,插入时向链表左右两边插入,因此插入的复杂度为O(1),查找时越靠近链表两侧的值越容易查询到。
List命令
添加
LPUSH key value [value]
RPUSH key value [value]
查询
LRANGE key start end(end = -1 代表读到最后一个元素)
LINDEX key index(获取索引元素值)
删除指定值
LREM key count value(
count > 0 从左边删除count个,
count < 0 从右边删除|counge|个,
ocunt = 0 删除所有值为value的值)
弹出元素
LPOP key
RPOP key
获取列表长度
LLEN key
修改
LSET key index value
只保留列表指定片段
LTRIM key start stop
向列表中插入元素
LINSERT key BEFORE|AFTER pivot value(从左到右找值Wiepivot的元素,在其前|后插入指定value,找不到不差入,返回-1)
将元素从一个列表中转到另一个列表中
RPOPLPUSH source destination(原表右出,新表左进)
Set
无序,不重复,redis还提供了多个集合之间的交集、并集、差集的运算
Set命令
添加
SADD key member [member]
删除
SREM key member [member]
查询
SMEMBERS key
判断是否是集合中的元素
SISMENBER key member
获取Set中元素个数
SCARD key
从集合中弹出一个元素
SPOP key(随机弹出)
集合的运算
差集
SDIFF key [key] (SDIFF A B == A-B)
并集
SUNION key [key]
交集
SINTER key [key]
SortedSet zset
有序的Sort
命令
添加
ZADD key score member [score member] (会替换自存在的member对应的score)
删除
ZREM key member [member]
ZREMRANGEBYRANK key start stop (按照排名范围删除, 0~-1删除所有的)
ZREMRANGEBYSCORE key min max (按照分数范围删除)
查找
ZSCORE key member //查询指定分数的key
ZRANGE key start stop [WITHSCORES] //查询指定范围内的key[和分数]
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] (查询分数在区间内的key,包含min和max;limit:分页,offset到count)
增加分数
ZINCRBY key increment member
获取元素数量
ZCARD key
获取指定分数内元素个数
ZCOUNT key min max
排序
ZRANK key member (从小到大)
ZREVRANK key member (从大到小)
Keys命令
设置key存活时间
EXPIRE key seconds //以秒为单位设置存活时间
TTL key //查看key的存活时间(-1 表示未设置时间 存活时间为永久)
PERSIST key //移除给定 key 的生存时间
PEXPIRE key milliseconds //以毫秒为单位设置存活时间
其他命令
keys pattern //满足正则式pattern的所有key
exists key //判断key是否存在
del key //删除key
rename key newkey //重命名key
type key //获取key的类型