1 redies是一个开源的高性能的Key-value数据库
2 redies可以将内存中的数据经过持久化保存到磁盘中
3 redies不仅仅支持简单的key-value数据库,还支持String,list,set等多种格式存储
4 redies 支持数据库备份
5 Redis能读的速度是110000次/s,写的速度是81000次/s
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启动命令行执行下图命令
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的发布与订阅是一种消息通信模式,只要一个频道发布了消息,如果其他频道订阅了这个频道,那么他就能收到消息。
1 redies订阅一个频道: SUBSCRIBE messageChart(此为订阅频道名称,类似于kafka中的topic)
2 给messagechart推送消息: PUBLISH messageChart"我是测试小能手阿"
redies事物分三个阶段: 开始事物 命令入队 事物完成 (批量操作在发送 EXEC 命令前被放入队列缓存).
redies会保持单个事物的原子性,但是如果其中一个事务失败,失败之前的不会回滚,失败之后的还会继续执行。
@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 listAll = stringRedisTemplate.opsForList().range("myList", 0, -1);
logger.info("list all {}", listAll);
// 查询前3个元素
List 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
可助你更好的玩转redies: 链接:https://pan.baidu.com/s/1rzow9dm_VOUR_cxtEMjtqA 提取码: hufa。(侵删)