当前位置:   article > 正文

Redis:安装,常用命令,SpringBoot中配置+操作命令_spring redis命令

spring redis命令

目录

1、简介:

下载安装

Linux中Redis服务的启停

2、key-value数据类型:

key:String,value常用5种:String,hash,list,set,sorted set

3、常用命令:

String:

Hash: 可用于存储对象:字段+值

List: 可用于存储任务队列 ,先进先出(lpush,rpop:左进右出)

Set: 无序集合,元素不重复,可求交并差集

Sorted Set: 有序集合(score小到大 )​编辑

通用命令:

4、java操作Redis:

SpringBoot中的 简化操作


1、简介:

 

 下载安装

 

Linux中Redis服务的启停

启动:在/redis-4.0.0/src目录下,使用./redis-server 启动服务,默认端口号:6379,可在配置中修改

 修改配置信息:在/redis-4.0.0目录下修改./redis.conf

  • 解决前台霸屏,让redis服务后台进行::/bae进行查找 baemonize 在变成插入模式将no改为yes,(允许后台运行)
  • 设置访问密码:   :/进行查找password  修改密码
  • 允许远程访问: :/查找bind,并#注释
    • 外部访问需要关闭对应端口的防火墙
    • firewall-cmd --zone=public --add-port=端口号/tcp --permanent :添加开放端口
    • firewall-cmd --reload  :重新加载防火墙
       

修改后,查找redis进程,关闭重新开启

  • ps -ef | grep redis  :查找redis 进程 获取进程id
  • kill -9 进程id: 关闭进程
  • src/redis-server ./redis.conf  :开启服务
  • src/redis-cli -h localhost -p 端口号 -a 密码 :重新访问 

停止:Ctl+C

Windows: 

  • PowerShell命令: .\redis-server.exe redis.windows.conf  开启服务,然后直接双击redis.cli.exe进行操作
  • 或者远程连接Linux中的服务:.\redis-cli.exe -h localhost -p 端口号 -a 密码

2、key-value数据类型:

key:String,value常用5种:String,hash,list,set,sorted set

Redis存储的是key-value结构的数据,其中key是字符串,value有5中常用类型:

3、常用命令:

String:

set key seconds value :可用于设置有时间限制的验证码

Hash: 可用于存储对象:字段+值

 字段;field    值;value

List: 可用于存储任务队列 ,先进先出(lpush,rpop:左进右出)

lrange mylist 0 -1: 表示mylist列表的开始到结尾的所有元素

Set: 无序集合,元素不重复,可求交并差集

Sorted Set: 有序集合(score小到大 )

通用命令:

select 编号  :选择对应编号的数据库

4、java操作Redis:

 pom.xml文件添加依赖 导包

先开启Redis的本地服务,在测试,否则无法连接

 

SpringBoot中的 简化操作

1.在pom/xml文件中添加依赖:

 2. application.yml中设置Redis相关配置:

 3. 进行Redis测试,在RedisTemplate没有显示赋值时,Spring框架会根据Redis设置自动装配 

    3.1 创建Redis匹配类:避免key序列化改变原来key值不利于取值,value也会序列化 在获取时会反序列化

  1. /**
  2. * Redis配置类
  3. */
  4. @Configuration
  5. public class RedisConfig extends CachingConfigurerSupport {
  6. @Bean
  7. public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
  8. RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
  9. //默认的Key序列化器为:JdkSerializationRedisSerializer
  10. redisTemplate.setKeySerializer(new StringRedisSerializer());
  11. redisTemplate.setHashKeySerializer(new StringRedisSerializer());
  12. redisTemplate.setConnectionFactory(connectionFactory);
  13. return redisTemplate;
  14. }
  15. }

   3.2 在test中测试Redis的相关操作

opsForValue()、opsForHash()、opsForList()、opsForSet()、opsForZSet()、通用操作

  1. @SpringBootTest
  2. @RunWith(SpringRunner.class)
  3. public class SpringDataRedisTest {
  4. @Autowired
  5. private RedisTemplate redisTemplate;
  6. /**
  7. * 操作String类型数据,添加键值对,添加有时间限制的键值对,当键不存在时再添加键值对
  8. */
  9. @Test
  10. public void testString(){
  11. redisTemplate.opsForValue().set("city123","beijing");
  12. String value = (String) redisTemplate.opsForValue().get("city123");
  13. System.out.println(value);
  14. redisTemplate.opsForValue().set("key1","value1",10l, TimeUnit.SECONDS);
  15. Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent("city1234", "nanjing");
  16. System.out.println(aBoolean);
  17. }
  18. /**
  19. * 操作Hash类型数据,存值 取值,获取所有字段、所有值
  20. */
  21. @Test
  22. public void testHash(){
  23. HashOperations hashOperations = redisTemplate.opsForHash();
  24. //存值
  25. hashOperations.put("002","name","xiaoming");
  26. hashOperations.put("002","age","20");
  27. hashOperations.put("002","address","bj");
  28. //取值
  29. String age = (String) hashOperations.get("002", "age");
  30. System.out.println(age);
  31. //获得hash结构中的所有字段
  32. Set keys = hashOperations.keys("002");
  33. for (Object key : keys) {
  34. System.out.println(key);
  35. }
  36. //获得hash结构中的所有值
  37. List values = hashOperations.values("002");
  38. for (Object value : values) {
  39. System.out.println(value);
  40. }
  41. }
  42. /**
  43. * 操作List类型的数据
  44. */
  45. @Test
  46. public void testList(){
  47. ListOperations listOperations = redisTemplate.opsForList();
  48. //存值
  49. listOperations.leftPush("mylist","a");
  50. listOperations.leftPushAll("mylist","b","c","d");
  51. //取值 从对头输出即左侧输出
  52. List<String> mylist = listOperations.range("mylist", 0, -1);
  53. for (String value : mylist) {
  54. System.out.println(value);
  55. }
  56. //获得列表长度 llen
  57. Long size = listOperations.size("mylist");
  58. int lSize = size.intValue();
  59. for (int i = 0; i < lSize; i++) {
  60. //出队列,从队尾输出即右侧输出
  61. String element = (String) listOperations.rightPop("mylist");
  62. System.out.println(element);
  63. }
  64. }
  65. /**
  66. * 操作Set类型的数据
  67. */
  68. @Test
  69. public void testSet(){
  70. SetOperations setOperations = redisTemplate.opsForSet();
  71. //存值
  72. setOperations.add("myset","a","b","c","a");
  73. //取值
  74. Set<String> myset = setOperations.members("myset");
  75. for (String o : myset) {
  76. System.out.println(o);
  77. }
  78. //删除成员
  79. setOperations.remove("myset","a","b");
  80. //取值
  81. myset = setOperations.members("myset");
  82. for (String o : myset) {
  83. System.out.println(o);
  84. }
  85. }
  86. /**
  87. * 操作ZSet类型的数据
  88. */
  89. @Test
  90. public void testZset(){
  91. ZSetOperations zSetOperations = redisTemplate.opsForZSet();
  92. //存值
  93. zSetOperations.add("myZset","a",10.0);
  94. zSetOperations.add("myZset","b",11.0);
  95. zSetOperations.add("myZset","c",12.0);
  96. zSetOperations.add("myZset","a",13.0);
  97. //取值
  98. Set<String> myZset = zSetOperations.range("myZset", 0, -1);
  99. for (String s : myZset) {
  100. System.out.println(s);
  101. }
  102. //修改分数
  103. zSetOperations.incrementScore("myZset","b",20.0);
  104. //取值
  105. myZset = zSetOperations.range("myZset", 0, -1);
  106. for (String s : myZset) {
  107. System.out.println(s);
  108. }
  109. //删除成员
  110. zSetOperations.remove("myZset","a","b");
  111. //取值
  112. myZset = zSetOperations.range("myZset", 0, -1);
  113. for (String s : myZset) {
  114. System.out.println(s);
  115. }
  116. }
  117. /**
  118. * 通用操作,针对不同的数据类型都可以操作
  119. */
  120. @Test
  121. public void testCommon(){
  122. //获取Redis中所有的key
  123. Set<String> keys = redisTemplate.keys("*");
  124. for (String key : keys) {
  125. System.out.println(key);
  126. }
  127. //判断某个key是否存在
  128. Boolean itcast = redisTemplate.hasKey("itcast");
  129. System.out.println(itcast);
  130. //删除指定key
  131. redisTemplate.delete("myZset");
  132. //获取指定key对应的value的数据类型
  133. DataType dataType = redisTemplate.type("myset");
  134. System.out.println(dataType.name());
  135. }
  136. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/776172
推荐阅读
相关标签
  

闽ICP备14008679号