开发者学堂课程【Redis 数据库入门:Redis-安装-字符串键】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/15/detail/44
Redis- 安装-字符串键
内容介绍
一、常见的字符串键
二、索引和操作范围
一、常见的字符串键
get 到十秒键就会自动删除,ex 可以设置键的过期时间
1.GET key value
SET msg “helloworld”
GET msg
SET number 10086
GET number
可以使用 Redis 来缓存一些被经常被用到或者耗费大量资源的内容,通过把将这些内容放到 Redis 里面,程序会以极快的速度取得这些内容,从而减轻网站的负担,降低网站的延迟。
2.SETNX key value(NX就是“not exist”的意思)
SETNX new-key”i am a new key”
SETNX new-key”another new key here”
GET new-key
3.MSET key value(可以设置多个值)
MAET key value [key value...]
MGET key[key...]
与 MGET 命令对应,同时获取多个值。
下面举个例子
MSET chenbo::email
chenbo@163.com
chenbo::qq tencent chenbo::location bj
MGET chenbo::email chenbo::qq chenbo::location
通常用一个冒号代表一个级别,这是比较规范的说法。
NX 表示不存在下才能设置成功。通过 Keys*,然后可以看到设置的键都有哪些。
NX 不存在才能存储成功,所以它不能存储成功。并且这条命令具有原子性,所谓原子性就是最小级别,不能再被拆分。
这里返回之后是 integer0,说明没有设置成功,否则就是1。
4.MSETNX key value
具有原子性,如果一个是存在的,那么 MSETNX 将不执行任何设置操作。
MSETNX nx-1”hello”nx-2”world”nx-3”good-luck”
SETex-key”bad key here”
MSETNX nx-4 “apple”nx-5”banana”ex-key”cherry”
所以大家看到这里有一个键已经存在,那么它就不会设置成功。
5.GETSET key value
它可以将字符串的值设置为 new value,并返回字符串键设置新值之前储存的旧值。
比如:
SET getset-str”i am old value”
GETSET getset-str”i am a new value”
GET getset-str
GETSET 的网络传输由两次变为一次。
6.APPEND key value
将值 value 插入到字符串键 key 已存储内容的末尾。
比如:
SET myPhone “nokia”
APPEND myPhone”1110”
GET myPhone
7.STRLEN key
接受一个 key 返回长度。
SET msg “hello”
STRLEN msg
APPEND msg “world”
STRLEN msg
它的问号代表一个字符。
二、索引和范围操作
1.索引
字符串的第一个字符的索引为0,从字符串的开头向字符串的结尾依次递增,字符串最后一个字符的索引为N-1,其中N为字符串的长度。除了正数索引之外,字符串还有负数,所以负数,负数索引以-1开始,从字符串的结尾向字符串的开头依次递减。字符串的最后一个字符的索引为-N,其中N为字符串的长度。
2.范围操作
通过 SETRANGE 命令,我们可以从索引 Index 开始,用你想写入的 value 值替换掉给定键 key 所储存的字符串中的部分,等于做手术切开病人的胳膊,我们再接上新的胳膊一样。当然这里只接受正数索引。
命令返回替换之后字符串值的长度。我们看一个例子。我们将 key 为 msg 的值设为“hello”,然后调用 SETRANGE 命令,然后键为 msg,给定的索引为1。
也就是字符串的第二个字符开始,也就是从第二个开始我们把字符逐个改写为a.p.p.y,也就是给成了 happy,我们现在在用 GET msg 的话就会返回 happy。
3.GETRANGE(可以获得某个区间范围内的值)
返回键 Key 储存的字符串中,位于 start 和 END 两个索引之间的内容,左右都闭区间(也就是说闭区间的话,Starts 和 end也会被包含在内容里。)和 SETRANGE只接受正数索引不同,GETRANGE 的索引可以是正数也可以是负数。
举个例子,如果我们调用 SET 命令,将msg的值设置为“hello world”,GETRANGE 给定索引值0、4,就可以获得字符串给定0到4。
H,e,l,l,o这5个字符的内容,因为 GETRANGE 还能接受负数,同样我们获取范围-5到-1的字符,我们也可以获得5个字符。W,o,r,l,d只需要注意一点就是,这里索引范围是闭区间,给定0的时候,这个字符会包含在内,给定4的时候这个字符也会包含在内。这个可能跟一些编程语言不一样,所以要注意区分清楚。