前言
一般来说,我们在redis的学习中,如果只是需要日常开发作为java中间件使用,那么只需要学习redis的前三种基本类型就可以了,但是本着多知识,多学习的原则,我们还是五种类型全部学习一下。一、String
String类型可能是我们在redis作为缓存的最重要的一种使用类型,所以我们需要着重的学习一下String类型。
下面就是一些redis中String类型的基本操作
append key “hello” 给string类型的key追加字符串
xxx是key的名字
hello是追加的字符串
返回值是 字符串的长度
如果当前字符串不存在,就相当于set key
strlen key 获取字符串的长度
set key 0 设置初始量为0
incr key 自动加一,相当于i++ 自增一
decr key 自动减一,相当于i--
incrby key 10 增加10
decrby key 10 减少10
字符串范围
getrange key start end 截取字符串 (start起始下标 ,end结束下标,闭区间)
getrange key 0 -1 查看所有字符串,和get key一样
替换字符串
setrange key start xxx 替换指定位置开始字符串 start起始下标 xxx替换的内容 (从起始下标开始)
setex (set with expire) 设置过期时间
setex key seconds value
setnx (set if not exist) 如果不存在创建,存在的话创建失败
setnx key value
批量创建(同时设置多个值)
mset [key value ...] 批量创建 使用空格隔开
mget [key1 key2 ...] 批量获取key
msetnx [key value...] 不存在创建,存在就创建失败 (只要有一个存在 就不成功)(原子性操作)
String使用场景:
计时器、统计多单位的数量、粉丝数、对象缓存存储
二、List
在redis里,list可以完成栈、队列和阻塞队列。
并且,所有的list命令都是l开头的。
lpush list value 将一个值或多个值添加到列表的头部(左)
lrange list start stop 获取list中的值 (通过区间获取其中的值)
lrange list 0 -1 获取所有的list的值
rpush list value 将一个值或多个值添加到列表的尾部(右)
lpop 移除list中最左边的元素(第一个)
rpop 移除list中最右边的元素(最后一个)
lindex list index 通过下标获取list中的某一个值
llen list 返回当前list集合的长度
lrem list acount value 移除一个或多个value (移除list集合中指定个数的value,精确匹配)
ltrim list start stop 通过下标截取指定的长度,改变了list集合
组合命令:
rpoplpush source destination 移除列表的最后一个元素,并将它添加到新的列表里
source 原来的列表 destination 新的列表
exists list 判断是否存在list
lset list index value 更新列表的值,如果列表不存在,则会报错
linsert list BEFORE|AFTER pivot(list中存在的value) value
往存在的value的前面或者后面插入值
ist实际上是一个链表,前后都可以插入值,
如果key不存在,创建新的链表,
如果key存在,新增内容 ,
如果移除key,所有value都会消失。
在两边插入值或者改动值,效率最高!
总结
上面的基本上就是redis中的String和List的基本用法了,因为学习数据库的操作这种常使用性的技术,都是边操作边理解的,所有奉劝大家一定要理论与实践结合。