1. 数据类型
- redis官网
- 数据类型
-
redis
常用的数据类型是五
种,但是它支持的数据类型不止
五种,如图所示redis的数据类型
-
常用的数据类型
常用的数据类型 说明 string
字符串类型,字符串的值最大长度为 512 M
hash
散列类型,对应 Java
的Map
list
列表类型,对应 Java
的List
,列表的最大长度为2^32-1
个元素,大约40亿
set
集合类型 zset
有序集合类型(根据设置的 score 进行排序)
-
2. 常用数据类型的操作
-
通用
# 获取数据库所有的键 keys * # 判断某个键是否存在,存在返回 1,不存在返回 0 exists key # 获取键的类型(string, hash, list,set, zset) type key # 设置key的存活时间,单位为秒 expire key 数值 # 查看 key 的存活时间 ttl key # 删除键,多个键用 , 隔开 del key1, key2, key3…… # 删除所有的键 flushall
-
string
# 设置值,如果键存在则覆盖 set key value # 将对应的键的值递增1,即+1,注意该值必须是数字 incr key # 将对应的键的值递减1,即-1,注意该值必须是数字 decr key # 根据键取值 get key # 如果不存在则设置(redis设置分布式锁) setnx key value
string 操作
-
list
# 往key集合的左侧设置值,并返回这是第几个元素 lpush key value # 往key集合的右侧设置值,并返回这是第几个元素 rpush key value # 取key集合中索引在[start, end]的值 # lrange key 0 -1 查询key集合所有的值 lrange key start end # 获取key集合中索引为 index 的元素 lindex key index # 设置key集合中索引为 index 的值为 value lset key index value # 获取key集合的长度 llen key # 移除并返回key集合的 首元素 lpop key # 移除并返回key集合的 尾元素 rpop key # 移除列表中 count 个值为 value 的数据并返回删除了几个数据 # count 为 0 移除所有值为 value 的数据 lrem key count value # 保留索引在 [start, end] 之间的元素,其他全部删除 ltrim key start end
list 的操作-1
list 的操作-2
list 的操作-3
-
set
# 往名为key的集合中添加元素,返回添加成功的个数,元素间空格隔开 sadd key member1 member2 member3 ... # 返回名为key的集合中所有的元素 smembers key # 删除名为key的集合的元素,返回删除成功的个数,元素间空格隔开 srem key member1 member2 ... # 返回名为key的集合中的个数 scard key # 判断名为key的集合中是否存在member,存在则返回1,不存在返回0 sismember key member # 从key集合中随机返回一个值 srandmember key # 随机移除key集合中的元素,并返回该元素 spop key # 将source集合中的member元素移动到名为target的集合中 smove source target member # 对key1 key2两个集合求交集 sinter key1 key2 # 对key1 key2两个集合求并集 sunion key1 key2 # 对key1 key2差集运算,返回结果数,并将结果存储到集合target中 sdiffstore target key1 key2 # 对key1 key2交集运算,返回结果数,并将结果存储到集合target中 sinterstore target key1 key2 # 对key1 key2并集运算,返回结果数,并将结果存储到集合target中 sunionstore target key1 key2
set 相关操作
-
zset
# score 必须为数值(可以为负数),根据score从小到大进行排序 # 添加元素到key集合,如果value存在则修改score zadd key score1 value1 score2 value2 ... # 获取key集合中value元素的分数score,value不存在返回 null zscore key value # 获取key集合中索引在 [start, end] 的所有元素 # zrange key 0 -1 获取所有 zrange key start end # 获取key集合中索引在 [start, end] 的所有元素及其分数 zrange key start end withscores # 获取key集合中元素的个数 zcard key # 获取分数在 [min, max] 范围内的元素的个数 zcount key min max # 获取分数在 [min, max] 范围内的所有元素,根据分数排序 zrangebyscore key min max # 查询key集合中分数在 [min, max] 范围内的所有元素,分页获取索引为index,条数为rows的数据 zrangebyscore key min max limit index rows # 获取 value 在 key 集合中的下标 zrank key value # 删除key集合的元素,多个元素用 空格 隔开 zrem key value1 value2 ... # 将key集合的元素倒序排列后,然后取索引在 [begin, end] 范围内的元素 zrevrange key begin end # 移除 key 集合分数在 [min, max] 范围内的元素,并返回移除的个数 zremrangebyscore key min max # 移除 key 集合索引在 [begin, end] 之间的元素 zremrangebyrank key begin end
zset 操作-1
zset 操作-2
-
hash
# 设置值,如果存在相同的 key,将会覆盖对应的 value # map 是这个 hash 的 key 键名,对应 java 的 map 的变量名 # key value 是 map 里面的键值对 # 多个键值对用 空格 隔开 hset map key1 value1 key2 value2 ... # 获取名为 map 的 hash 集合中的名为 key 的 value 值 hget map key # 判断名为 map 的 hash 集合中的 key 是否存在 # 存在返回1,不存在返回0 hexists map key # 获取名为 map 的 hash 集合中所有的 key hkeys map # 获取名为 map 的 hash 集合中的所有字段 value 值 hvals map # 获取名为 map 的 hash 集合中所有的元素(key 跟 value) hgetall map # 获取名为 map 的 hash 集合所有字段的数量 hlen map # 删除 map 集合中的 key 字段 hdel map key # 如果名为 map 的 hash 集合中不存在名为 key 的键值对,则设置值 hsetnx map key value
hash 操作-1
hash 操作-2
网友评论