Redis 五种基本数据类型
Redis 启动
首先,修改redis.conf配置文件:
配置完成后,保存退出,再次通过 redis``-``server redis.conf
命令启动 Redis,此时,就是在后台启
动了。
String
String 是 Redis 里边最最简单的一种数据结构。在 Redis 中,所以的 key 都是字符串,但是,不同的
key 对应的 value 则具备不同的数据结构,我们所说的五种不同的数据类型,主要是指 value 的数据类
型不同。
Redis 中的字符串是动态字符串,内部是可以修改的,像 Java 中的 StringBuffffer,它采用分配冗余空间
的方式来减少内存的频繁分配。在 Redis 内部结构中,一般实际分配的内存会大于需要的内存,当字符
串小于 1M 的时候,扩容都是在现有的空间基础上加倍,扩容每次扩 1M 空间,最大 512M。
- set
set 就是给一个 key 赋值的。
- append
使用 append 命令时,如果 key 已经存在,则直接在对应的 value 后追加值,否则就创建新的键值对。
- decr(-1)
可以实现对 value 的减 1 操作(前提是 value 是一个数字),如果 value 不是数字,会报错,如果
value 不存在,则会给一个默认的值为 0,在默认值的基础上减一。
- decrby(+)
和 decr 类似,但是可以自己设置步长,该命令第二个参数就是步长。**decrby k1 5**
- get
get 用来获取一个 key 的 value。
- getrange
getrange 可以用来返回 key 对应的 value 的子串,这有点类似于 Java 里边的 substring。这个命令第
二个和第三个参数就是截取的起始和终止位置,其中,-1 表示最后一个字符串,-2 表示倒数第二个字符
串,以此类推…
eg.
>get k1
www.baidu.com
getrange k1 4 -1
得到:baidu.com
- getset
获取并更新某一个 key。
- incr
给某一个 key 的 value 自增。
- incrby
给某一个 key 的 value 自增,同时还可以设置步长。
- incrbyflfloat
和 incrby 类似,但是自增的步长可以设置为浮点数。
- mget 和 mset
批量获取和批量存储
- ttl
查看 key 的有效期。-1,永不过期,-2,已过期
- setex
在给 key 设置 value 的同时,还设置过期时间(单位:秒)。
- psetex
和 setex 类似,只不过这里的时间单位是毫秒。
- setnx
默认情况下, set 命令会覆盖已经存在的 key,setnx 则不会。
- msetnx
批量设置,如果有一个 key 已存在,则批量的设置都不会成功。
Redis 的 Java 客户端
开启远程连接
Redis 默认是不支持远程连接的,需要手动开启。
- 注释掉
bind:127.0.0.1
- 开启密码校验,打开 requirepass,并设置密码。
Redis 做分布式锁
分布式锁也算是 Redis 比较常见的使用场景