redis中的5中数据结构
redis 中键都是字符串类型
所说的5中数据结构指定的是值的结构
1、String
单只存储(存一个具体值,也可以存储一个java中的对象,对象是被序列化成json格式的字符串)
set key value:设定键值
get key:获取键的值
del key:删除键
keys *:查看所有的键
计数器
incr 键(键的值必须是整数):键自增1
decr 键:键自减1
2、Hash
redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象,存的是字符串和字符串值之间的映射,比如要存储用户购物车等信
hset key 属性 值:设定属性和属性的值
hget key 属性:取得键的属性对应的值
hdel key 属性:删除某个属性
hlen key:返回key下属性的数量
hgettall key:返回key下所有属性的属性值
3、List(列表)
有序集合;里面可以存储重复元素
lpush key val:从左边向集合添加元素
lpush key val从左边向集合添加元素
rpush key val
lpop key从头删除
rpop key 从尾删除
lrange key 开始位置 结束位置
4、Set(集合)
无序不重复的集合
sadd key val
srem key val
smembers key:查看指定key下所有的值
scard key:查看key下的元素数量
5、zset(有序(排序)不重复的集合)
redis zset 也是不允许重复的成员,但是是有序的。
不同的是每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。
zset 的成员是唯一的,但分数(score)却可以重复。
zadd key score member[[score member]..] :往有序集合 key 中加入带分值元素
zrem key member[member...] :从有序集合 key 中删除元素
zscore key member :返回有序集合 key 中元素 member 的分值
zcard key :返回有序集合 key 中元素个数
6、设置失效时间
有时候我们并不希望 redis 的 key 一直存在。例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销毁。redis 提供了一些命令,能够让我们对 key设置过期时间,并且让 key 过期之后被自动删除
EX 表示以秒为单位PX 表示以毫秒为单位 (EX,PX 不区分大小写)
set name jim EX 30 设置失效时间为 30 秒
set name jim PX 30 设置失效时间为 30 毫秒
ttl 键 查看剩余时间(秒)
pttl 键 查看剩余时间(毫秒)