redies成神之路

  • Post author:
  • Post category:其他




redies简介

 1  redies是一个开源的高性能的Key-value数据库
 2  redies可以将内存中的数据经过持久化保存到磁盘中
 3  redies不仅仅支持简单的key-value数据库,还支持String,list,set等多种格式存储
 4  redies 支持数据库备份
 5  Redis能读的速度是110000次/s,写的速度是81000次/s 



redies安装



windows下安装:

1  https://github.com/MSOpenTech/redis/releases,下载完成之后解压

2  新增图中startup.cmd文件,在此文件中新加一句,redis-server redis.windows.conf

3  双击图中redies中的redis-server.exe启动redies

4  双击图中的redies.cli.exe启动命令行执行下图命令

在这里插入图片描述
在这里插入图片描述



ubuntu下安装

1 sudo apt-get update
2 sudo apt-get install redis-server
3 启动  redis-server 端口6379
4 redis-cli 查看redies是否正确安装
  在此分享一篇博文,解决了我大部分遇到的问题
  [添加链接描述](https://www.cnblogs.com/zongfa/p/7808807.html)



redies发布与订阅

redies的发布与订阅是一种消息通信模式,只要一个频道发布了消息,如果其他频道订阅了这个频道,那么他就能收到消息。

1 redies订阅一个频道: SUBSCRIBE messageChart(此为订阅频道名称,类似于kafka中的topic)

2 给messagechart推送消息: PUBLISH messageChart”我是测试小能手阿”

在这里插入图片描述



redies事物

redies事物分三个阶段: 开始事物 命令入队 事物完成 (批量操作在发送 EXEC 命令前被放入队列缓存).

redies会保持单个事物的原子性,但是如果其中一个事务失败,失败之前的不会回滚,失败之后的还会继续执行。



redies在springboot中的应用

   @RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest()
public class RediesTest {

    private static Logger logger = LoggerFactory.getLogger(RediesTest.class);



    @Autowired
    private RedisTemplate redisTemplate;

   @Autowired
    private StringRedisTemplate stringRedisTemplate;


   /**
   * @Description:  往redies中存储字符串
   * @参数注释:
   * @Return:
   * @Author:  hanlin
   * @Date:
   * @Exception:
   */
    @Test
    public void test() throws Exception {

       // 保存字符串
        stringRedisTemplate.opsForValue().set("aaa", "111");
        Assert.assertEquals("111", stringRedisTemplate.opsForValue().get("aaa"));


        stringRedisTemplate.opsForValue().set("nihao", "你好");
        Assert.assertEquals("你好", stringRedisTemplate.opsForValue().get("nihao"));

}

/**
* @Description:   往redies中存储对象
* @参数注释:
* @Return:
* @Author:  hanlin
* @Date:
* @Exception:
*/
@Test
public void test1() throws Exception {

    User user = new User();
    user.setName("我没有三颗心脏");
    user.setAge(21);

    redisTemplate.opsForValue().set("user_1", user);
    User user1 = (User) redisTemplate.opsForValue().get("user_1");

    System.out.println(user1.getName());
}
/**
* @Description: 往redies中添加集合
* @参数注释:
* @Return:
* @Author:  hanlin
* @Date:
* @Exception:
*/
@Test
public void listPushResitTest() {
    // leftPush依次由右边添加
    stringRedisTemplate.opsForList().rightPush("myList", "1");
    stringRedisTemplate.opsForList().rightPush("myList", "2");
    stringRedisTemplate.opsForList().rightPush("myList", "A");
    stringRedisTemplate.opsForList().rightPush("myList", "B");
    // leftPush依次由左边添加
    stringRedisTemplate.opsForList().leftPush("myList", "0");
}
/**
* @Description:  查询redies中的集合
* @参数注释:
* @Return:
* @Author:  hanlin
* @Date:
* @Exception:
*/
@Test
public void listGetListResitTest() {
    // 查询类别所有元素
    List<String> listAll = stringRedisTemplate.opsForList().range("myList", 0, -1);
    logger.info("list all {}", listAll);
    // 查询前3个元素
    List<String> list = stringRedisTemplate.opsForList().range("myList", 0, 3);
    logger.info("list limit {}", list);
}
/**
* @Description: 在redies中操作map
* @参数注释:
* @Return:
* @Author:  hanlin
* @Date:
* @Exception:
*/
@Test
public void hashPutResitTest() {
    // map的key值相同,后添加的覆盖原有的
    stringRedisTemplate.opsForHash().put("banks:12600000", "a", "b");
}

@Test
public void hashGeDeleteResitTest() {
    // 根据map的key删除这个元素
    stringRedisTemplate.opsForHash().delete("banks:12600000", "c");
}

@Test
public void hashGetKeysResitTest() {
    // 获得map的key集合
    Set<Object> objects = stringRedisTemplate.opsForHash().keys("banks:12600000");
    logger.info("objects:{}", objects);
}

@Test
public void hashGetValueListResitTest() {
    // 获得map的value列表
    List<Object> objects = stringRedisTemplate.opsForHash().values("banks:12600000");
    logger.info("objects:{}", objects);
}

@Test
public void hashSize() { // 获取map对象大小
    long size = stringRedisTemplate.opsForHash().size("banks:12600000");
    logger.info("size:{}", size);
}



redies可视化工具

   可助你更好的玩转redies: 链接:https://pan.baidu.com/s/1rzow9dm_VOUR_cxtEMjtqA 提取码: hufa。(侵删)



版权声明:本文为weixin_41274824原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。