补充: List
命令 List 链表 即是栈又是队列
栈:先进后出------试管
队列:先进先出------管道
命令测试:
Lpush 在头部添加字符串元素
栈
Lpush mylist “hello”
Lpush mylist “word”
Lrange mylist 0 -1
队列
rpush 在尾部添加字符串元素
rpush mylist “hello”
rpush mylist “word”
Lrange mylist 0 -1
如何在元素中间添加元素
Lset 设置list中制定下标的元素值
Lrem 从key对应list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除)
Ltrim 保留指定key的值范围内的数据
Lpop 重list头部删除元素,并返回删除元素
rpop从尾弹出
Rpoplpush:从第一个list尾部移除元素,并添加到第二个list的头部
Lindex :返回名称为key的list中index位置的元素
Llen
返回key对应的list的长度
Redis 本身提供一个Java语言支持(不仅仅是java 各个语言都支持,如果想要通过redis语言开发 ,我们就需要通过Maven去获取该组件)
集合中增加元素
返回集合大小
删除集合中元素
判断出集合中是否包含某个元素
列出集合中所有元素
。Redis支持不同无序、有序的列表,无序、有序的集合间的交集、并集等高级服务器端原子操作。
redis提供五种数据类型:string,hash,list,set及zset(sorted set)。
redis使用了两种文件格式:全量数据和增量请求。
全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;
增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,序列化的操作包括SET、RPUSH、SADD、ZADD。
redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。
对存储在指定key的数值执行原子的加1操作。
Incr
Decr
对存储在指定key的数值执行原子的减1操作。
将key对应的数字减decrement
将key的值 减相应的数字
GETRANGE key start end
作用: 是获取字符串中 [start, stop]范围的值
注意: 对于字符串的下标,左数从0开始,右数从-1开始
setrange key offset value
作用:把字符串的offset偏移字节,改成value
注意: 如果偏移量>字符长度, 该字符自动补0x00
expire key 整型值
作用: 设置key的生命周期,以秒为单位
设置秒数
毫秒
返回随机key
set key value [ex 秒数] / [px 毫秒数] [nx] /[xx]
如: set a 1 ex 10 , 10秒有效
Set a 1 px 9000 , 9秒有效
注: 如果ex,px同时写,以后面的有效期为准
如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒
nx: 表示key不存在时,执行操作
xx: 表示key存在时,执行操作
mset和mget
修改字符串
setrange key offset value
作用:把字符串的offset偏移字节,改成value
超过长度 用16进制 补全
追加字符串
setbit key offset value
设置offset对应二进制位上的值
注意:
1:如果offset过大,则会在中间填充0,
2: offset最大大到多少
3:offset最大2^32-1,可推出最大的的字符串为512M
二进制下标为2的位置 A 65 a 97 中间相差32 二进制
65 :0100 0001
32 :0010 0000
97 :0110 0001
转 小写
查询key的生命周期
-1永久有效
-2 不存在的key
返回的是秒数