这里写目录标题
1 -「季淳卿」 Redis基本介绍和String练习
开始下回分解
String(字符串)
代码如下:
#-- 1 strlen key 查看字符串的长度
127.0.0.1:6379> set name aabbcc
OK
127.0.0.1:6379> strlen name
(integer) 6
#-- 2 append key value 在字符串后面追加
127.0.0.1:6379> append name dd
(integer) 8
127.0.0.1:6379> get name
"aabbccdd"
#-- 3 psetex key milliseconds value 毫秒为单位设置 key 的过期时间
127.0.0.1:6379> psetex age 20000 jack
OK
127.0.0.1:6379> ttl age
(integer) 16
127.0.0.1:6379> get age
"jack"
127.0.0.1:6379> ttl age
(integer) 3
127.0.0.1:6379> get age
(nil)
127.0.0.1:6379>
#-- 4 getrange 获取 key 中字符串值的子字符(获取指定长度的字符)
127.0.0.1:6379> set day aabbcc
OK
127.0.0.1:6379> getrange day 2 5
"bbcc"
127.0.0.1:6379>
#-- 5 getrange name 0 -1 查看所有字符串
127.0.0.1:6379> getrange day 0 -1
"aabbcc"
#-- 6 setrange key offset value 用 value 参数覆写给定 key 所储存
#-- 的字符串值,从偏移量 offset 开始。(替换指定位置的值)
127.0.0.1:6379> get day
"aabbcc"
127.0.0.1:6379> setrange age 2 jack
(integer) 6
127.0.0.1:6379> get age
"aajack"
127.0.0.1:6379>
缓存击穿
- 是指缓存中没有但是数据库中有的数据
- 由于并发用户特别多,缓存中没有读到数据
- 同时在数据库取数据引起数据库压力瞬间增大,造成缓存击穿
缓存穿透
- 是指缓存和数据库中都没有的数据(一般是缓存时间到期)
- 而用户不断发起请求,造成缓存穿透(如发起的数据特别大而不存在的数据)
Hash(哈希)
- hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 适合用于存储对象。
- 在Redis中一个Hash就类型的键,就相当于定义了一个Hashmap 键里面
- 可以保存键值对的数据 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)
- 上次有提到字符串最大是可以存储512字节
命名如下
## -1 hset key field value
127.0.0.1:6379> hset hh aa 11
(integer) 1
127.0.0.1:6379> hset hh bb 22
(integer) 1
127.0.0.1:6379> hset hh cc 33
(integer) 1
## -2 gset key field value
127.0.0.1:6379> hget hh aa
"11"
## -3 hgetall key
127.0.0.1:6379> hgetall hh
1) "aa"
2) "11"
3) "bb"
4) "22"
5) "cc"
6) "33"
## -4 hmset key field1 value1 [field2 value2 ]
127.0.0.1:6379> hmset hh dd 44 ee 55 ff 66
OK
## -5 hmget key field1 [field2]
127.0.0.1:6379> hmget hh dd ee ff
1) "44"
2) "55"
3) "66"
## -6 hkeys key
127.0.0.1:6379> hkeys hh
1) "aa"
2) "bb"
3) "cc"
4) "dd"
5) "ee"
6) "ff"
## -7 hvals key
127.0.0.1:6379> hvals hh
1) "11"
2) "22"
3) "33"
4) "44"
5) "55"
6) "66"
## -8 hdel key field1 [field2]
127.0.0.1:6379> hdel hh aa bb cc
(integer) 3
127.0.0.1:6379> hgetall hh
1) "dd"
2) "44"
3) "ee"
4) "55"
5) "ff"
6) "66"
127.0.0.1:6379>
## -9 hlen key
127.0.0.1:6379> hlen hh
(integer) 3
## -10 hsetnx key field value
127.0.0.1:6379> hsetnx hh gg 77
(integer) 1
127.0.0.1:6379> hsetnx hh gg 77
(integer) 0
## -key expire key seconds
127.0.0.1:6379> expire hh 20
(integer) 1
127.0.0.1:6379> ttl hh
(integer) 16
127.0.0.1:6379> hget hh aa
(nil)
今天学习结束啦✿✿ヽ(°▽°)ノ✿
有什么问题欢迎大家提出来,一起进步
世界灿烂盛大,欢迎回家 —— 《全球高考》