redis入门
redis是非关系型数据库
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
不遵循SQL标准。
不支持ACID。
远超于SQL的性能。
NoSQL适用场景
对数据高并发的读写
海量数据的读写
对数据高可扩展性的
安装教程网上一搜就有的,我的安装方法不一定能适合你的redis安装
注意redis退出服务器要在客户端命令shutdown,不然服务器下次开启不了
数据类型
String
语法:
set key value
设置 key 的值
---------------------------------------------------------
get key
得到 key 的值
---------------------------------------------------------
getrange key start end
返回 key 中字符串值的子字符
---------------------------------------------------------
getset key value
将key 的值设为 value 和返回 key 的旧值
---------------------------------------------------------
mget key1 [key2..]
得到(一个或多个)给定 key 的值
---------------------------------------------------------
key seconds value
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
--------------------------------------------------------
setnx key value
只有在 key 不存在时设置 key 的值
--------------------------------------------------------
strlen key
返回 key 所储存的字符串值的长度
--------------------------------------------------------
mset key value [key value ...]
同时设置一个或多个 key-value 对
-------------------------------------------------------
msetnx key value [key value ...]
同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
------------------------------------------------------
psetex key milliseconds value
这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 命令那样,以秒为单位
------------------------------------------------------
incr key
将 key 中储存的数字值增一。
-----------------------------------------------
incrby key increment
将 key 所储存的值加上给定的增量值(increment) 。
------------------------------------------------
incrbyfloat key increment
将 key 所储存的值加上给定的浮点增量值(increment)
------------------------------------------------
decr key
将 key 中储存的数字值减一
------------------------------------------------
decrby key decrement
key 所储存的值减去给定值(只能操作字符数值)
------------------------------------------------
append key value
若key存在则将value追加到key的末尾上
-----------------------------------------------
Set
sadd key member1 [member2]
向set集合添加一个或多个成员
--------------------------------------------------
scard key
获取集合的成员数
--------------------------------------------------
sismember key member
判断 member 元素是否是集合 key 的成员
--------------------------------------------------
sismembers key
返回集合中的所有成员
--------------------------------------------------
spop key
移除并返回集合中的一个随机元素
--------------------------------------------------
srem key member1 [member2]
移除集合中一个或多个成员
--------------------------------------------------
List
blpop key1 [key2 ] timeout
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
-------------------------------------------------
brpop key1 [key2 ] timeout
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
-------------------------------------------------
lindex key index
通过索引获取列表中的元素
-------------------------------------------------
linsert key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
-------------------------------------------------
llen key
获取list列表长度
-------------------------------------------------
lpop key
移出并获取列表的第一个元素(移除在列表里就没了)
-------------------------------------------------
lpush key value1 [value2]
将一个或多个值插入到列表头部
-------------------------------------------------
lpushx key value
将一个值插入到已存在的列表头部
-------------------------------------------------
lrange key start stop
获取列表指定范围内的元素
-------------------------------------------------
lrem key count value
移除列表元素
-------------------------------------------------
lset key index value
通过索引设置列表元素的值
-------------------------------------------------
14 rpop key
移除列表的最后一个元素,返回值为移除的元素。
-------------------------------------------------
rpush key value1 [value2]
在列表中添加一个或多个值
-------------------------------------------------
rpushx key value
为已存在的列表添加值
-------------------------------------------------
sortSet
zadd key score1 member1 [score2 member2]
向有序集合添加一个或多个成员,或者更新已存在成员的分数
-------------------------------------------------
zcard key
获取有序集合的成员数
------------------------------------------------
zcount key min max
计算在有序集合中指定区间分数的成员数
------------------------------------------------
zincrby key increment member
有序集合中对指定成员的分数加上增量 increment
Hash
hdel key field1 [field2]
删除一个或多个哈希表字段
-------------------------------------------------
hexists key field
查看哈希表 key 中,指定的字段是否存在。
------------------------------------------------
hget key field
获取存储在哈希表中指定字段的值。
-----------------------------------------------
hgetall key
获取在哈希表中指定 key 的所有字段和值
-----------------------------------------------
hincrby key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment
-----------------------------------------------
hincrbyfloat key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
----------------------------------------------
hkeys key
获取所有哈希表中的字段
---------------------------------------------
hlen key
获取哈希表中字段的数量
---------------------------------------------
hmget key field1 [field2]
获取所有给定字段的值
---------------------------------------------
hmset key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中。
------------------------------------------
hset key field value
将哈希表 key 中的字段 field 的值设为 value 。
-----------------------------------------
hsetnx key field value
只有在字段 field 不存在时,设置哈希表字段的值。
-----------------------------------------
hvals key
获取哈希表中所有值。
--------------------------------------------
springboot操作redis
maven依赖包
<!-- redis配置-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- spring2.X集成redis所需common-pool2-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
</dependency>
开发测试步骤:
- 知道RedisTemplate这个类的使用
这个 类使用@Autowired注入到咱们要使用redis的类中
@Autowired
RedisTemplate template;
这个对象有许多的方法讲最基本的使用:
opsForValue() +刚刚说的redis基本数据类型的用法
opsForHash()+同上
opsForList()+同上
opsForSet() +同上
注意这里有一点不一样就是当用opsForValue()存入字符串的时候就会这样
而将它换成StringRedisTemplate则正常显示,这里面涉及了序列化的问题
咱下期再讲,下期再见🥰