Redis
Redis
Redis是基于内存的key-value结构数据库
所以在Redis中操作需要制定一个key来填写对于value
- 基于内存存储,读写性能高
- 内存有限,所以不能因为读写性能高就把所有数据存储在Redis而不用Mysql
- 存储热点数据(热点商品,咨询,新闻)
- 企业应用广泛
启动服务端
1 | redis-server.exe redis.windows.conf |
启动客户端
1 | redis-cli.exe |
1 | ping localhost:6379 |
1 | exit |
指定客户端连接哪个服务端
1 | redis-cli.exe -h localhost -p 6379 |
切换数据库0开始15结束 共16个数据库
1 | select 0 |
1.修改Redis配置文件
设置修改密码
在配置文件中搜索
requirepass可以找到

因为Redis默认是没有密码的、#是注释 若需要加入密码,把#删除将foobared修改成对应密码即可
此时连接需要加入-a
1
redis-cli.exe -h localhost -p 6379 -a password
2.Redis图形化界面客户端

3.Redis5种数据类型
- 字符串 String 普通字符串,Redis中最简单常用的数据类型
- 哈希 hash 散列,类似于Java中的HashMap (适合存储对象 变量 值)
- 列表 list 按照插入顺序排序,可以有重复元素,类似Java中的LinkedList(有序,可重复,有索引)
- 集合 set 无序集合,没有重复元素,类似Java中的HashSet(计算交集并集)
- 有序集合 sorted set/zset 集合中每个元素关联一个分数(score),根据粉丝升序排序,没有重复元素(排行榜)

4.Redis常用命令
- 字符串操作命令 string
- SET key value 设置制定key的值
- GET key 获取制定key的值
- SETEX key seconds value 设置制定key的值,并将key的过期时间设置为seconds 秒
- SETNX key value 只有在key不存在时设置key的值
- 哈希操作命令 hash
- HSET key field value 将哈希表key中的字段field的值设为value
- HGGET key field 获取存储在哈希表中指定字段的值
- HDEL key field 删除存储在哈希表中的指定字段
- HKEYS key 获取哈希表中所有字段
- HVALS key 获取哈希表中所有值

- 列表操作命令 list
- LPUSH key value1 [value2] 将一个或多个值插入到列表头部
- 按照顺序插入,所以1在最后

- RPUSH key value1 [value2] 将一个或多个值插入到列表尾部
- LRANGE key start stop 获取列表指定范围内的元素
- PROP key 移除并获取列表内的元素
- LLEN key 获取列表长度
- LPUSH key value1 [value2] 将一个或多个值插入到列表头部
- 集合操作命令 set (不能有重复元素)
- ASDD key member1 [member2] 向集合添加一个或多个成员
- 按照先后顺序,先在前,后在后

- SMEMBERS key 返回集合中所有成员
- SCARD key 获取集合的成员数
- SINTER key1 [key2] 返回给定所有集合的交集
- 已经设置
sadd set 1 2 3 4和sadd set2 3 4 5所以交集为 3 4 
- 已经设置
- SUNION key1 [key2] 返回所有给定集合的并集

- 排除了多余的3和4
- SREM key member1 [member2] 删除集合中一个或多个成员
- ASDD key member1 [member2] 向集合添加一个或多个成员
- 有序集合操作命令 zset
- ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员
- ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合中指定区间内的成员
- ZINCRBY key increment member 有序集合中对指定成员的分数加上增量increment
- ZREM key member [member…] 移除有序集合中的一个或多个成员
- 通用命令 (不分数据类型,都可以使用的命令)
- KEYS pattern 查找所有符合规定模式(pattern)的key
- EXISTS key 检察给定key是否存在
- TYPE key 返回key所存储的值的类型
- DEL key key存在时删除key
5.在Java中操作Redis
Redis的Java客户端
- Redis的Java常用客户端
- Jedis
- Lettuce
- Spring Data Redis(是Spring的一部分 对Redis底层开发包进行了高度封装 在Spring项目中可以使用Spring Data Redis来简化操作)
- Redis的Java常用客户端
Spring Data Redis使用
操作步骤
导入Spring Data Redis的maven坐标
1
2
3
4
5<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>3.3.1</version>
</dependency>配置Redis数据源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17spring:
redis:
host: localhost
prot: 6379
password: xxxxxx
#忽略/
redis:
host: ${sky.redis.host}
port: ${sky.redis.port}
password: ${<PASSWORD>}
database:
jedis:
pool:
max-active: 8
max-idle: 8
min-idle: 0编写配置类,创建RedisTemplate对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class RedisConfiguartion {
public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
log.info("开始创建redis模板类");
RedisTemplate redisTemplate = new RedisTemplate();
//设置key的序列化器,默认为JdkSerializationRedisSerializer
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
}
}通过RedisTemplate对象操作Redis
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 NIGZLA!








