域名没过期 网站打不开怎么办,做外贸网站的效果怎么样,奢侈品商城网站建设方案,做外贸没有网站需要什么条件redis 1、redis安装与启动服务2、redis数据类型3、redis常用命令3.1 字符串String3.2 哈希Hash3.3 列表List3.4 集合Set#xff08;无序#xff09;3.5 有序集合zset3.6 通用命令 4、使用Java操作Redis4.1 环境准备4.2 Java操作字符串String4.3 Java操作哈希Hash4.4 Java操作… redis 1、redis安装与启动服务2、redis数据类型3、redis常用命令3.1 字符串String3.2 哈希Hash3.3 列表List3.4 集合Set无序3.5 有序集合zset3.6 通用命令 4、使用Java操作Redis4.1 环境准备4.2 Java操作字符串String4.3 Java操作哈希Hash4.4 Java操作列表List4.5 Java操作集合Set无序4.6 Java操作有序集合zset4.7 Java实现Redis常用命令 redis是基于内存的key-value结构的数据库。
1、redis安装与启动服务
安装redis主需要将下载好的redis压缩包解压到无中文的目录中即可。
启动服务打开命令行窗口通过cd命令进入redis安装目录。或者在资源管理器中先进入redis安装目录然后再该目录中打开命令行窗口。输入如下命令启动redis服务
redis-server.exe redis.windows.conf关闭服务按Ctrl C
通过客户端连接redis服务。在安装目录中重新打开一个命令行窗口。由于redis默认是没有密码的所以可以直接输入如下命令
redis-cli.exe设置redis密码。打开redis配置文件redis.windows.conf找到配置密码命令大概在443行。取消注释将foobared替换成自己的密码保存文件重新启动服务即可。
requirepass foobared设置密码之后重新通过客户端连接redis服务需要加上密码完整命令为
// -h 指定主机地址 -p 指定端口 -a redis密码
redis-cli.exe -h localhost -p 6379 -a 123456可以通过redis客户端可视化软件连接redis服务简化redis操作。
2、redis数据类型
redis有5种常用数据类型。
数据类型特点字符串String普通字符串Redis中最简单的数据类型哈希hash也叫散列类似于Java中的HashMap结构列表list按照插入顺序排列可以有重复元素类似于Java中的LinkedList集合set无序集合没有重复元素类似于Java中的HashSet有序集合sorted set / zset集合中每个元素关联一个分数score根据分数升序排序没有重复元素 3、redis常用命令
3.1 字符串String
命令说明SET key value设置指定key的值GET key获取指定key的值SETEX key seconds value设置指定key的值并将key的过期时间设为seconds秒SETNX key value只有在key不存在时设置key的值
3.2 哈希Hash
Redis hash是一个 String 类型的 field 和 value 的映射表hash 特别适合用于存储对象。
命令说明HSET key field value将哈希表key中的字段field的值设为valueHGET key field获取存储在哈希表中指定字段的值HDEL key field删除存储在哈希表中的指定字段HKEYS key获取哈希表中的所有字段HVALS key获取哈希表中的所有值
3.3 列表List
命令说明LPUSH key value1 [value2]将一个或多个值插入到列表头部LRANGE key start stop获取列表指定范围内的元素查询所有元素start0stop1RPOP key移除并获取列表最后一个元素LLEN key获取列表长度
3.4 集合Set无序
命令说明SADD key member1 [member2]向集合添加一个或多个成员SMEMBERS key返回集合中的所有成员SCARD key获取集合的成员数SINTER key1 [key2]返回给定所有集合的交集SUNION key1 [key2]返回所有给定集合的并集SREM key member1 [member2]删除集合中一个或多个成员
3.5 有序集合zset
命令说明ZADD key score1 member1 [score2 member2]向有序集合添加成员ZRANGE key start stop [WITHSCORES]通过索引区间返回有序集合中指定区间内的成员ZINCRBY key increment member有序集合中对指定成员的分数加上增量incrementZREM key member [member…]移除有序集合中的一个或多个成员
3.6 通用命令
命令说明KEYS pattern查找所有符合给定模式pattern的keyEXISTS key检查给定key是否存在TYPE key返回key所储存的值的类型DEL key该命令用于在key存在时删除key
4、使用Java操作Redis
Redis的Java客户端有很多种这里介绍Spring Data Redis。 Spring Data Redis是Spring的一部分对Redis底层开发包进行了高度封装。在Spring项目中可以使用Spring Data Redis来简化操作。
4.1 环境准备
引入Redis依赖
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId
/dependency在配置文件中配置Redis数据源 host主机地址portRedis端口号passwordRedis密码database数据库0-15
spring:redis:host: localhostport: 6379password: 123456database: 0编写配置类
Configuration
Slf4j
public class RedisConfiguration {Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { // 注入Redis连接工厂对象log.info(开始创建RedisTemplate对象...);RedisTemplate redisTemplate new RedisTemplate();// 设置redis的连接工厂对象redisTemplate.setConnectionFactory(redisConnectionFactory);// 设置redis key的序列化器redisTemplate.setKeySerializer(new StringRedisSerializer());return redisTemplate;}
}通过注入RedisTemplate 对象操作Redis。
// 注入RedisTemplate 对象
Autowired
private RedisTemplate redisTemplate;4.2 Java操作字符串String
说明方法获取操作 String 的对象opsForValue()设置指定key的值set(key, value)获取指定key的值get()设置指定key的值并设置key的过期时间set(key, value, 时间, 单位)只有在key不存在时设置key的值setIfAbsent(key, value)
Java代码示例
ValueOperations valueOperations redisTemplate.opsForValue(); // 获取操作 String 的对象
valueOperations.set(city, beijing); // SET key value
String city (String) valueOperations.get(city); // GET key
System.out.println(city);valueOperations.set(code, 123456, 60, TimeUnit.SECONDS); // SETEX key seconds value
valueOperations.setIfAbsent(lock, 1); // SETNX key value
valueOperations.setIfAbsent(lock, 2);4.3 Java操作哈希Hash
说明方法获取操作 hash 的对象opsForHash()将哈希表key中的字段field的值设为valueput(key, field, value)获取存储在哈希表中指定字段的值get(key, field)删除存储在哈希表中的指定字段delete(key, field)获取哈希表中的所有字段keys(key)获取哈希表中的所有值values(key)
Java代码示例
HashOperations hashOperations redisTemplate.opsForHash(); // 获取操作 hash 的对象
hashOperations.put(100, name, Tom); // HSET key field value
hashOperations.put(100, age, 20);
String name (String) hashOperations.get(100, name); // HGET key field
System.out.println(name);Set keys hashOperations.keys(100); // HKEYS key
System.out.println(keys);
List values hashOperations.values(100); // HVALS key
System.out.println(values);
hashOperations.delete(100, name); // HDEL key field4.4 Java操作列表List
说明方法获取操作 list 的对象opsForList()将一个或多个值插入到列表头部leftPushAll(key, value1, value2)插入单个值leftPush(key, value)获取列表指定范围内的元素查询所有元素start0stop1range(key, start, stop)移除并获取列表最后一个元素rightPop(key)获取列表长度size(key)
Java代码范例
ListOperations listOperations redisTemplate.opsForList(); // 获取操作 list 的对象
listOperations.leftPushAll(mylist, a, b, c); // LPUSH key value1 [value2] 插入多个值
listOperations.leftPush(mylist, d); // LPUSH key value1 插入单个值List mylist listOperations.range(mylist, 0, -1); // LRANGE key start stop
System.out.println(mylist);listOperations.rightPop(mylist); // RPOP keyLong size listOperations.size(mylist); // LLEN key
System.out.println(size);4.5 Java操作集合Set无序
说明方法获取操作 set 的对象opsForSet()向集合添加一个或多个成员add(setKey, member1, member2)返回集合中的所有成员members(setKey)获取集合的成员数size(setKey)返回给定所有集合的交集intersect(setKey1, setKey2)返回所有给定集合的并集union(setKey1, setKey2)删除集合中一个或多个成员remove(setKey, member1, member2)
Java代码范例
SetOperations setOperations redisTemplate.opsForSet(); // 获取操作 set 的对象
setOperations.add(set1, a, b, c, d); // SADD key member1 [member2]
setOperations.add(set2, a, b, x, y);Set set1Members setOperations.members(set1); // SMEMBERS key
System.out.println(set1Members);Long set1Size setOperations.size(set1); // SCARD key
System.out.println(set1Size);Set intersect setOperations.intersect(set1, set2); // SINTER key1 key2 [key3]
System.out.println(intersect);Set union setOperations.union(set1, set2); // SUNION key1 key2 [key3]
System.out.println(union);setOperations.remove(set1, a); // SREM key member1 [member2]4.6 Java操作有序集合zset
命令/说明方法获取操作 zset 的对象opsForZSet()向有序集合添加成员add(zsetKey, member, score)通过索引区间返回有序集合中指定区间内的成员range(zsetKey, start, stop)有序集合中对指定成员的分数加上增量incrementincrementScore(zsetKey, member, increment)移除有序集合中的一个或多个成员remove(zsetKey, member1, member2)
Java代码范例
ZSetOperations zSetOperations redisTemplate.opsForZSet(); // 获取操作 zset 的对象
zSetOperations.add(zset1, a, 10); // ZADD key score member1
zSetOperations.add(zset1, b, 12);
zSetOperations.add(zset1, c, 9);Set zset1 zSetOperations.range(zset1, 0, -1); // ZRANGE key start stop
System.out.println(zset1);zSetOperations.incrementScore(zset1, c, 10); // ZINCRBY key increment memberzSetOperations.remove(zset1, a, b); // ZREM key member1 [member2]4.7 Java实现Redis常用命令
通用操作直接使用redisTemplate对象。
说明方法查找所有符合给定模式pattern的keykeys(“给定的模式”)检查给定key是否存在hasKey(key)返回key所储存的值的类型type(key)该命令用于在key存在时删除keydelete(key)
Java代码范例
// 通用操作直接使用redisTemplate对象
Set keys redisTemplate.keys(*); // KEYS pattern
System.out.println(keys);Boolean name redisTemplate.hasKey(name); // EXISTS keyfor(Object key : keys){DataType type redisTemplate.type(key); // TYPE keySystem.out.println(type.name());
}redisTemplate.delete(mylist); // DEL key