Redis基本数据类型操作

Redis基本数据类型操作

使用建议

  1. 优雅的停止应该是 ./redis-server shutdown, 这样redis会将当前的快照备份到rdb的文件当中
  2. redis中一般只会用到0号库,分布式情况下,只会同步到0号库

全局命令

命令 功能 备注
keys aa* 模糊搜索所有关键字 *为通配符 生产环境一般禁止使用, 数据量较大的情况会阻塞redis使用
dbsize 查看当前redis中key的数量 redis中每插入一个key, 计数器+1,性能较好
EXISTS aaa 精确匹配当前key是否存在
del aaa 删除一个key
set aaa(key) 999(value) 插入一个键值对, 默认没有过期时间 如果不设置过期时间,会大量占用redis的内存使用。如果当前key已经设置了过期时间,重新set的话没有指定过期时间,会将原有的过期时间覆盖,变为-1 永不过期的key
get aaa 获取一个key的value
EXPIRE aaa(key) 18(过期时间) 设置key的过期时间 不能对set list集合内的元素单独设置过期时间
ttl aaa 查看当前key的剩余过期时间 正数:剩余过期时间 0:刚好过期 -1:没有过期时间 -2:不存在当前的key
PEXPIRE aaa 设置key的过期时间,精确到毫秒 不能对set list集合内的元素单独设置过期时间
EXPIREAT aaa 1000(时间戳) 在某个时间过期 不能对set list集合内的元素单独设置过期时间
type aaa 查看key的数据类型
rename aaa bbb 重命名一个key的名字 如果重命名的key已经存在了, 会将当前的key删除, 然后将存在的key的value赋值到新的key的value当中。 比如: aaa = 1 bbb =2, rename bbb aaa, 此时bbb的值为1
renamenx aa bbb 重命名一个key的名字 如果重命名后的的key已经存在, 会返回0, 代表修改失败
randomkey 随机返回一个已存在的key

String类型

Redis 是标准的C写的, C语言中的String类型是char数组(char[]), 在Redis中并没有直接使用C的String类型, 是自己实现的

操作Redis中的字符串不要太大, 尽量小于512M

命令 功能 备注
setnx aa 333 不存在就创建 一般用在分布式锁中
setxx aa bb 存在就覆盖当前的值 高版本中已经删除这个命令了
set key value nx 不存在就创建一个键值对, 如果已经存在, 返回nil 和setnx 类似
set key value xx 存在就覆盖当前的值, 如果不存在返回nil 和setxx 命令类似
set aaa(key) 999(value) 插入一个键值对, 默认没有过期时间 如果不设置过期时间,会大量占用redis的内存使用。如果当前key已经设置了过期时间,重新set的话没有指定过期时间,会将原有的过期时间覆盖,变为-1 永不过期的key
get aaa 获取一个key的value
EXPIRE aaa(key) 18(过期时间) 设置key的过期时间 不能对set list集合内的元素单独设置过期时间
ttl aaa 查看当前key的剩余过期时间 正数:剩余过期时间 0:刚好过期 -1:没有过期时间 -2:不存在当前的key
PEXPIRE aaa 设置key的过期时间,精确到毫秒 不能对set list集合内的元素单独设置过期时间
EXPIREAT aaa 1000(时间戳) 在某个时间过期 不能对set list集合内的元素单独设置过期时间
type aaa 查看key的数据类型
rename aaa bbb 重命名一个key的名字 如果重命名的key已经存在了, 会将当前的key删除, 然后将存在的key的value赋值到新的key的value当中。 比如: aaa = 1 bbb =2, rename bbb aaa, 此时bbb的值为1
renamenx aa bbb 重命名一个key的名字 如果重命名后的的key已经存在, 会返回0, 代表修改失败
randomkey 随机返回一个已存在的key
mset key 1 key2 2 key3 3 批量插入
mget key key1 key2 批量获取
incr key 自增1
incrby key 3 指定自增长度
incrbyfloat key 0.5 自增浮点数操作
decr key 自减1
append key aa 在已有的key的value追加一个字符串 比如key = 111, 使用append后, 值为111aa
setrange key 5 x 在key的value中, 第五个值设置为某个值 如果设置的位置的值不存在, 则会在设置的位置之前的空位上补齐一个空的字符串
getrange key 1 3 获取key的1-3位置的字符串信息

Hash类型

redis中的hash类型可以大致理解为是Map<String, Map<String, Object>> 结构

命令 功能 备注
hset key field value key是redis的key, filed是value中的key, value是value中key的value
hsetnx key field value 设置value中指定field的值, 如果存在则不覆盖
hget key filed 获取key的value中的filed的value
hmset key filed1 value1 filed2 value2 批量设置value中的键值对
hdel key filed1 删除value中指定的key
hmget key filed1 filed2 批量获取value中的key对应的值
hexists key filed 判断value中对应的key是否存在 存在返回1, 不存在返回0
hkeys key 获取value中所有的key
hgetall key 返回value中的所有的值 以键值对的方式返回
hincrby key filed 对value中的key的值进行自增1
hdecrby key filed 对value中的key的值进行自减1
hincrby key filed 3 对value中key的值进行指定步长的自增
hdecrby key filed 3 对value中的key的值进行指定步长的自减
hincrbyfloat key field 0.5 对value中的key进行浮点数的自增
hdecrbyfloat key field 0.5 对value中的key进行浮点数的自减
hlen key 获取value中的map的key的数量
posted @ 2023-07-21 00:54  孟大凡  阅读(8)  评论(0编辑  收藏  举报