Redis中的五大基本类型-String
一、基本操作
- 查看所有的key
keys *
- 设置key-value值
set k1 tsc
get k1
- 判断一个key是否存在
exists k1
返回1代表存在,0 代表不存在
- 查看建是什么类型
type k2
返回string
- 删除
del k3
这个是直接删除
unlink k3
这个是异步删除
- 设置过期时间
expire k1 10
setex k1 10 v1
时间过了就会被删除,后面的可以同时设置k v 和过期时间
- 可以查看还有多少秒过期
ttl k1
-2 表示已经过期,-1表示永不过期
- 查看数据库中的key数量
dbsize
- 清空
flushdb
二、深入理解
String类型是二进制安全的,可以包含任何数据比如jpg图片或者序列化对象,value最大可以是512M。
一些重要的命令:
setnx k v
如果在设置时不存在key那么就设置key的值,如果存在就不能设置。分布式锁的基础。
incr k
decr k
将key中储存的数字值加减1
还有一个升级版
incrby k 2
decrby k 3
加入了一个步长,每次的加减值是自己设定的
他们的操作是原子性的,不会被线程调度机制打断的操作,主要得益于redis的单线程。而java中的 i++ 就不是原子性的。
三、底层数据结构
简单动态字符串,类似于java中的ArrayList(预分配冗余空间)