标签: redis

  • redis的订阅功能有什么用_读书小站

    本文收集自网络,侵删!

    Redis订阅功能可以用于消息的传输,是一种消息通信模式,Redis客户端可以订阅任意数量的频道,具体实现代码:

    package com.hcmony.sWord.redis;

    import org.apache.commons.lang3.StringUtils;

    import redis.clients.jedis.Jedis;

    import redis.clients.jedis.JedisPool;

    import redis.clients.jedis.JedisPubSub;

    public class RedisMQ {

     

    private static final String TOPIC="TOPIC";

     

    private final JedisPool jedisPool;

     

    public RedisMQ(JedisPool jedisPool) {

    this.jedisPool = jedisPool;

    public void publish(String topic ,String messge){

     

    Jedis jedis = null;

    if (StringUtils.isBlank(topic)){

    topic=TOPIC;

    }

    try {

    jedis = jedisPool.getResource();

    jedis.publish(topic,messge);

    }

    finally {

    if (null != jedis) {

    jedis.close();

    }

    }

    }

    public void subscribe(String topic,JedisPubSub jedisPubSub){

     

    Jedis jedis = null;

    if (StringUtils.isBlank(topic)){

    topic=TOPIC;

    }

    try {

    jedis = jedisPool.getResource();

    jedis.subscribe(jedisPubSub,topic);

    }

    finally {

    if (null != jedis) {

    jedis.close();

    }

    }

    }

    public static void main(String[] args) {

    //默认连接本地redis,

    // loclhost:6379

    JedisPool jedisPool = new JedisPool();

    RedisMQ publish = new RedisMQ(jedisPool);

    new Thread(new Runnable() {

    @Override

    public void run() {

    publish.subscribe("PID",new MyjedisPubSub());

    }

    }).start();

    for (int i=0;i<100;i++){

    publish.publish("PID","messge"+i);

    }

    }

    public static class MyjedisPubSub extends JedisPubSub {

    @Override

    public void onMessage(String channel, String message) {

    System.out.println("-------channel is "+channel+" message is "+message);

    }

    }

    }

  • 如何查看redis的出错信息_读书小站

    本文收集自网络,侵删!

    查看Redis的出错信息的方法:

    使用tail -f日志文件路径查看,日志文件路径在启动配置文件里有设置,路径例如:logfile/usr/local/var/log/redis.log,可打开配置文件查看。

  • redis缓存出现异常怎么处理_读书小站

    本文收集自网络,侵删!

    Redis缓存出现异常的解决方法:

    清除redis缓存,解决异常,操作步骤:

    访问redis根目录,命令:“cd /usr/local/redis-2.8.19”。

    登录redis,命令:“redis-cli -h 127.0.0.1 -p 6379”。

    查看所有key值,命令:“keys *”。

    删除指定索引的值,命令:“del key”。

    清空整个 Redis 服务器的数据,命令:“flushall”。

    清空当前库中的所有 key,命令:“flushdb”。

  • redis如何创建缓存_读书小站

    本文收集自网络,侵删!

    Redis创建缓存的示例:

    @Autowired

    private JedisClient jedisClient;

    public ListgetContentListByCid(long cid) {

    //查询缓存

    try {

    //如果缓存中有直接响应结果

    String JSON = jedisClient.hget("CONTENT_LIST", cid + "");

    if (StringUtils.isNotBlank(json)) {

    Listlist = JsonUtils.jsonToList(json, TbContent.class);

    return list;

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    //如果没有查询数据库

    TbContentExample example = new TbContentExample();

    Criteria criteria = example.createCriteria();

    //设置查询条件

    criteria.andCateGoryIdEqualTo(cid);

    //执行查询

    Listlist = contentMapper.selectByExampleWithBLOBs(example);

    //把结果添加到缓存

    try {

    jedisClient.hset("CONTENT_LIST", cid + "", JsonUtils.objectToJson(list));

    } catch (Exception e) {

    e.printStackTrace();

    }

    return list;

    }

    }

    缓存同步

    当做增删改时需要更新缓存

    @Override

    public E3Result addContent(TbContent content) {

    //插入到数据库

    contentMapper.insert(content);

    //当增删改操作时缓存同步,删除缓存中对应的数据,下次查询时从数据库中查

    jedisClient.hdel(CONTENT_LIST, content.getCategoryId().toString());

    return E3Result.ok();

    }

    public TbItem getItemById(long itemId) {

    //查询缓存

    try {

    String json = jedisClient.get("REDIS_ITEM_PRE" + ":" + itemId + ":BASE");

    if(StringUtils.isNotBlank(json)) {

    TbItem tbItem = JsonUtils.jsonToPojo(json, TbItem.class);

    return tbItem;

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    //缓存中没有,查询数据库

    TbItemExample example = new TbItemExample();

    Criteria criteria = example.createCriteria();

    //设置查询条件

    criteria.andIdEqualTo(itemId);

    //执行查询

    Listlist = itemMapper.selectByExample(example);

    if (list != null && list.size() > 0) {

    //把结果添加到缓存

    try {

    jedisClient.set("REDIS_ITEM_PRE" + ":" + itemId + ":BASE", JsonUtils.objectToJson(list.get(0)));

    //设置过期时间

    jedisClient.expire("REDIS_ITEM_PRE" + ":" + itemId + ":BASE",3600);

    } catch (Exception e) {

    e.printStackTrace();

    }

    return list.get(0);

    }

    return null;

    }

  • redis有什么可视化工具_读书小站

    本文收集自网络,侵删!

    Redis可视化工具有:1.Redis Desktop Manager,快速开源Redis数据库管理应用程序;2.Redis Studio,专业的Redis可视化工具;3.FastRedis,跨平台的开源Redis管理工具。

    redis可视化工具有:

    Redis Desktop Manager是一个用于windowslinuxMacOS的快速开源Redis数据库管理应用程序,它支持跨平台,数据操作功能较完善。

    Redis Studio是一款专业的Redis可视化工具,只支持Windows,但软件稳定性强,界面简洁,功能强大。

    FastRedis是一个跨平台的开源Redis管理工具,适用于大多数Linux系统,也适用于Windows、Mac OS X、FreeBSD和Android等平台。

  • redis可视化工具怎么查找数据库_读书小站

    本文收集自网络,侵删!

    redis可视化工具怎么查找数据库

    Redis可视化工具查找数据库的方法:

    在可视化操作界面,点击下方的加号新建连接。

    在弹出的对话框中,Name:给该连接起一个名字,Host:redis服务器的ip地址,Port:redis服务器的端口号,Auth:密码字段,如果redis服务器没有设置密码不用填。

    填写完再点击”Test Connection”进行连接。

    连接成功后,即可在左侧菜单查找数据库

  • redis怎么进行发布订阅_读书小站

    本文收集自网络,侵删!

    redis怎么进行发布订阅

    Redis进行发布订阅的方法:

    代码:

    public void publish(String topic ,String messge){

    Jedis jedis = null;

    if (StringUtils.isBlank(topic)){

    topic=TOPIC;

    }

    try {

    jedis = jedisPool.getResource();

    jedis.publish(topic,messge);

    }

    finally {

    if (null != jedis) {

    jedis.close();

    }

    }

    }

  • redis如何查看哨兵节点的信息_读书小站

    本文收集自网络,侵删!

    Redis查看哨兵节点信息的方法:1.打开终端;2.输入“sentinel sentinels imooc-master”命令看imooc-master下的哨兵节点信息即可。

    redis如何查看哨兵节点的信息

    具体操作步骤:

    打开终端命令行模式。

    输入以下命令看imooc-master下的哨兵节点信息即可。

    sentinel sentinels imooc-master #查看imooc-master下的哨兵节点信息

    相关操作命令:

    sentinel master imooc-master #查看imooc-master下的master节点信息

    sentinel slaves imooc-master #查看imooc-master下的slaves节点信息