相关文章:
Redis介绍和安装配置
一、Redis 数据结构
redis 的数据结构是 key-value 类型的 ,每条数据都是一个键值对。
键的类型是字符串,且键不能重复。
值的类型分为五种:
- 字符串 String
- 哈希 hash
- 列表 list
- 集合 set
- 有序集合 zset
二、操作 String 类型的值
Redis 中对数据的操作主要包括:保存、修改、获取、删除。
-
String 类型是 Redis 中最基础、最常用的数据存储类型;
-
它在 Redis 中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如 JPEG 图像数据或 Json 对象描述信息等。
-
在 Redis 中字符串类型的 Value 最多可以容纳的数据长度是 512M。
1、 保存和修改
- 设置键和值
【set key value】
例1:设置键为 name 、值为 yuance 的数据
set name yuance
如果设置的键不存在则为添加,如果设置的键已经存在则修改值。
- 设置键值及过期时间,以秒为单位
【setex key seconds value】
例2:设置键为 aa、值为 aa、过期时间为 3 秒的数据
setex aa 3 aa
当过期时间到了之后,数据就不存在了,变成 nil。
- 设置多个键值
【mset key1 value1 key2 value2 ...】
例3:设置键为'a1'值为'python'、键为'a2'值为'java'、键为'a3'值为'c'
mset a1 python a2 java a3 c
- 追加值
【append key value】
例4:在键为a1的值后面追加字符串 'haha'
append a1 haha
127.0.0.1:6379> get a1
"python"
127.0.0.1:6379> append a1 haha
(integer) 10
127.0.0.1:6379> get a1
"pythonhaha"
2、获取
- 根据一个键获取值,如果不存在此键则返回 nil。
【get key】
例5:获取键'name'的值
get name
或
get 'name'
- 根据多个键获取多个值,如果不存在此键则返回 nil。
【mget key1 key2 ...】
例6:获取键a1、a2、a3的值
mget a1 a2 a3
127.0.0.1:6379> mget a1 a2 a3 a4
1) "pythonhaha"
2) "java"
3) "c"
4) (nil)
3、删除
- 删除键,则同时会将值删除。
- 可同时删除多个键。
del key1 key2 ...
例5:删除键a2、a3
del a2 a3
127.0.0.1:6379> mget a1 a2 a3
1) "pythonhaha"
2) "java"
3) "c"
127.0.0.1:6379> del a2 a3
(integer) 2
127.0.0.1:6379> mget a1 a2 a3
1) "pythonhaha"
2) (nil)
3) (nil)
4、其它常用键命令
- 查找键,参数支持正则表达式,返回符合条件的键名。
【keys pattern】
例1:查看所有键
keys *
例2:查看名称中包含 a 的键
keys a*
127.0.0.1:6379> keys a*
1) "a1"
127.0.0.1:6379> keys b*
(empty list or set)
- 判断键是否存在,如果存在返回 1,不存在返回 0。
【exists key】
例3:判断键 a1 是否存在
exists a1
127.0.0.1:6379> exists a1
(integer) 1
127.0.0.1:6379> exists a2
(integer) 0
- 查看键对应的 value 值的类型,返回 redis 支持的五种类型中的一种。
- 若键不存在,则返回 none。
【type key】
例4:查看键 a1 的值类型
type a1
127.0.0.1:6379> type a1
string
127.0.0.1:6379> type a2
none
- 设置过期时间,以秒为单位。
- 可以通过 setex 命令在保存键值的同时设置过期时间,也可以使用 expire 命令单独设置过期时间。
- 如果没有指定过期时间则一直存在,直到使用 DEL 命令删除。
【expire key seconds】
例6:设置键'a1'的过期时间为3秒
expire 'a1' 3
- 查看指定键的当前有效时间,以秒为单位。
【ttl key】
例7:查看键 'a1' 的有效时间还有多少
ttl a1
"未设置有效时间,则返回 -1:"
127.0.0.1:6379> ttl a1
(integer) -1
"设置键 a1 的有效期为 10s:"
127.0.0.1:6379> expire a1 10
(integer) 1
"查看键 a1 的剩余有效期:"
127.0.0.1:6379> ttl a1
(integer) 6
127.0.0.1:6379> ttl a1
(integer) 3
"超过有效期,则返回 -2:"
127.0.0.1:6379> ttl a1
(integer) -2
"超过有效期,键就不存在了:"
127.0.0.1:6379> get a1
(nil)