默认数据库
默认情况下Redis给我们创建了16个数据库(0~15),如果使用的时候没有明确的选中使用哪个数据库, 那么默认使用第0个
切换数据库
select 1
字符串类型
新增
- 语法: set key value
set name BNTang
查询
- 语法: get key
get name
修改
- 语法: set key value
- 如果key已经存在就是修改
set name JonathanTang
删除
- 语法: del key
del name
字符串类型高级操作
- 语法: set key value
- 不管key是否存在都设置(不存在就新增,存在就覆盖)
setnx key value
- 语法: setnx key value
- 只有key不存在才设置(新增)
setnx name BNTang
set key value xx
- 语法: set key value xx
- 只有key存在才设置(更新)
set name JonathanTang xx
字符串类型批量处理
批量添加值
- 语法: mset key value key value
mset name BNTang age 19 score 100
批量查询值
- 语法: mget key key key
mget name age score
字符串类型其它操作
- 设置新值返回旧值
- 语法: getset key newValue
getset name JonathanTang
- 给旧值追加数据
- 语法: append key value
append name 666
- 计算value字符串长度,如果存储的中文就要看使用的字符集编码来算了例如GBK,UTF8
- 语法: strlen key
strlen name
- 获取指定下标范围的值
- 语法: getrange key start end
getrange name 0 11
- 从指定下标开始设置字符串的值
- 语法: setrange key offset value
setrange name 11 777
字符串类型自增自减操作
????incr
- 给指定key对应的Value自增1, 如果key不存在会自动创建新增, 并从0开始自增1
- 格式: incr key
set num 1
incr num
decr
- 给指定key对应的Value自减1, 如果key不存在会自动创建自减, 并从0开始自减1
- 格式: decr key
decr num
incrby
- 给指定key对应的Value增加指定值, 如果key不存在会自动新增, 并从0开始增加
- 格式: incrby key number
incrby num 9
decrby
- 给指定key对应的Value减少指定的值, 如果key不存在会自动新增, 并从0开始减少
- 格式: decrby key number
decrby num 9
incrbyfloat
- 给指定key对应的Value增加指定值, 如果key不存在会自动新增, 并从0开始增加
- 格式: incrbyfloat key float
set score 1.0
小数的添加
incrbyfloat score 7.5
小数的减少
incrbyfloat score -7.5
通用命令
- 查询当前数据库中所有的key
keys *
- 清空当前数据库(开发操作)
flushdb
- 清空所有数据库(离职操作)
flushall
????由于Redis是单线程
的, 而以上操作都是非常耗时的, 所以不推荐在企业开发中使用
- 计算当前数据库key的总数
dbsize
????dbsize并不是通过遍历统计得到当前数据库key的总数, 而是每次操作时内部会自动统计, 所以dbsize并不是一个耗时的操作, 我们可以在企业开发中大胆的使用
- 查看value数据类型
- 格式: type key
type name
- 判断指定key是否存在, 如果存在返回1, 如果不存在返回0
- 格式: exists key
exists name
- 设置key过期时间, 如果没有添加过期时间就是添加, 如果已经添加过了过期时间就是修改过期时间
- 格式: expire key seconds
expire name 3
- 查看key过期时间
- 格式: ttl key
ttl age
- 取消key过期时间, 如果key不存在或者已经被删除会返回
-2
, 如果key存在并且过期时间已经被删除会返回-1
- 格式: persist key
persist score