字符串类型操作
- redisdoc.com 所有语法文档
增删改查
- 新增
set key value
set name js
- 查询
get key
get name
-
修改
- set key value
- 如果key已经存在就是修改
删除
del key
del name
字符串类型-高级设置
-
set key value
- 不管key是否存在都会设置(不存在就新增, 存在就覆盖)
- set name css
-
setnx key value
- 只有key不存在才设置(新增)
- setnx name cs
-
set key value xx
- 只有key存在才设置(更新)
- set name vue xx
字符串类型- 批量处理
-
批量添加值
- meset key value key value ...
- meset age 18 gender nan
-
批量查询值
- mget key key key ...
- mget name age gender
字符串类型-其他操作
-
设置新值返回旧值
- getset key newValue
- getset name react
-
给旧值追加数据
- append key value
- append name 12
-
计算value字符串长度
- strlen key
- strlen name
- 注意点:中文问题
-
获取指定下标范围的值
- getrange key start end
- getrange name 0 -1
-
从指定下标开始设置字符串的值
- setrange key offset value
- setrange name 1 123
字符串类型-自增自减操作
-
incr
- 作用: 给指定key的对应的 value 自增 1,
- 如果key 不存在, 会自动新增, 并从0开始自增1
- 格式 : incr key
-
decr
- 作用: 给指定key的对应的 value 自减 1,
- 如果key 不存在, 会自动递减, 并从0开始自减1
- 格式 : decr key
-
incrby
- 作用: 给指定key的对应的Value增加指定值, 如果key不存在会自动新增, 并从0开始增加
- 格式: incrby key number
-
decrby
- 作用: 给指定key的对应的Value减少指定的值, 如果key不存在会自动新增, 并从0开始减少
- 格式: decrby key number
-
incrbyfloat
- 作用: 给指定key的对应的Value增加指定值, 如果key不存在会自动新增, 并从0开始增加
- 格式: incrbyfloat key float
哈希类型
- hash类型相当于 Js 中的对象, 可以把整个对象当做 value 存储起来
哈希类型-增删改查
-
增加
- hset key field value
- hset user age css
- hset user age 15
-
查询
- hget key field
- hget user name
-
修改
- 如果字段不存在就是新增, 如果字段存在就是修改
- hset key field value
- hset user name react
删除
-
删除指定字段
- hdel key field
- hdel user name
-
删除对应key所有数据
- del key
- del user
哈希类型-高级操作
-
批量新增
- hmset key field1 value1 field2 value2
- hmset user name css age 12
-
批量查询
- hmget key field field2 field3
- hmget user name age
-
工具指令
- hlen key 返回key存储的hash表中有多少条数据
- hlen user
-
是否存在指定key存储的Hash中是否有指定的字段
- hexists key field
- hexists user name 返回1表示穿在
- hexists user gender 返回0 表示不存在
哈希类型-其他操作
-
查询所有的field
- hkeys key
- hkeys user
-
查询所有的field 和 value
- hvals key
- hvals user
-
查询所有的field 和value
- hgetall key
- hgetall user
- 注意点:redis是单线程的, 以上操作比较耗时,慎用
List类型
- List类型就相当于JavaScript中的数组,可以把整个数组当做一个Value存储起来
- 注意点: List是有序的
List类型-增删改查
增加
-
从第二value开始添加到第一个的左边
- lpush key value1 value2 value3
- lpush arr aa bb cc
-
从第二value开始添加到前一个的右边
- rpush key value1 value2 value3
- rpush arr ff gg
查询
-
查询指定范围的数据
- lrange key startIndex endIndex
- 索引从0开始, endIndex等于-1表示取到最后
- lrange arr 0 -1
-
查询指定索引数据
- lindex key index
- 从前往后索引从0开始, 从后往前索引从-1开始
-
修改
- lset key index value
- 注意 index 从0开始
删除
-
lpop 删除左边元素
- lpop key
- lpop user
-
rpop 删除右边元素
- rpop key
- rpop user
-
lrem删除指定个数的指定元素
- lrem key count value
- count > 0 : 从表头开始先表尾所有, 移除与value相等的元素, 数量为count
- count < 0 : 从表尾开始向表头搜索, 移除与value相等的元素,数量为count的绝对值
- count = 0 : 移除表中所有与value 相等的值
-
ltrim按照索引剪切列表
- ltrim key start end
List类型-其他操作
-
追加数据
lpush key value1 value2 value3
lpush arr 11 22
rpush key value1 value2 value3
rpush arr 33 44
-
插入数据
- linsert key before|after oldValue newValue
- linsert arr after 11 test
-
获取列表长度
- llen key
- llen arr
列表实现简单数据结构
-
栈结构 - 先进后出
- lpush + lpop
-
队列结构 - 先进先出
- lpush + rpop
如果需要需要'先进后出'或者'先进先出'的数据
我们就可以将这些数据存储到Redis的列表中