Login
网站首页 > 文章中心 > 其它

Java连接操作redis_Java连接mysql

作者:小编 更新时间:2023-08-07 07:41:31 浏览量:162人看过

redis官方推荐使用jedis操作redis

导入依赖


    <dependency>

Java连接操作redis_Java连接mysql-图1

<groupId>redis.clientsgroupId> <artifactId>jedisartifactId> <version>③③0version> dependency>

直接使用即可

import redis.clients.jedis.Jedis;

public class RedisTest {
public static void main(String[] args) {
    Jedis jedis = new Jedis("12⑦0.0.1", 6379);
    jedis.set("name", "zl");
    System.out.println(jedis.get("name"));
    jedis.lpush("list", "a");
    jedis.lpush("list", "b");
    jedis.lpush("list", "c");
    jedis.lpush("list", "d");
    System.out.println(jedis.lrange("list", 0, -1));
    System.out.println(jedis.keys("*"));
}
}

注意:当多线程使用同一个连接时,是线程不安全的.所以要使用连接池,为每个jedis实例分配一个连接.

相较于jedis,当多线程使用同一连接实例时,它是线程安全的.

依赖引入(创建springboot项目时勾选noSQL中的redis)

<dependency>
 <groupId>org.springframework.bootgroupId>
 <artifactId>spring-boot-starter-data-redisartifactId>
dependency>

一般情况下不直接使用Lettuce,会手动封装一个操作redis的工具类,这个网上有很多,一下提供做参考

package com.zl.utils;

import org.apache.tomcat.util.buf.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

/**
 * Redis工具类,使用之前请确保RedisTemplate成功注入
 *
 * @author ye17186
 * @version 2019/2/22 10:48
 */
@Component
public class RedisUtils {

private RedisUtils() {
private RedisTemplate redisTemplate;

/**
 * @param key Redis键
 * @param timeout 超时时间
 * @return true=设置成功;false=设置失败
 */
public boolean expire(final String key, final long timeout) {

    return expire(key, timeout, TimeUnit.SECONDS);
/**
 * @param key Redis键
 * @param timeout 超时时间
 * @param unit 时间单位
 * @return true=设置成功;false=设置失败
 */
public boolean expire(final String key, final long timeout, final TimeUnit unit) {

    Boolean ret = redisTemplate.expire(key, timeout, unit);
    return ret != null  ret;
/**
 * @param key 键
 * @return true=删除成功;false=删除失败
 */
public boolean del(final String key) {

    Boolean ret = redisTemplate.delete(key);
    return ret != null  ret;
/**
 * @param keys 键集合
 * @return 成功删除的个数
 */
public long del(final Collection keys) {

    Long ret = redisTemplate.delete(keys);
    return ret == null ? 0 : ret;
/**
 * @param key Redis键
 * @param value 值
 */
public void set(final String key, final Object value) {

    redisTemplate.opsForValue().set(key, value, 1, TimeUnit.MINUTES);
// 存储普通对象操作

/**
 * @param key 键
 * @param value 值
 * @param timeout 有效期,单位秒
 */
public void set(final String key, final Object value, final long timeout) {

/**
 * @param key 键
 * @return 对象
 */
public Object get(final String key) {

    return redisTemplate.opsForValue().get(key);
// 存储Hash操作

/**
 * @param key Redis键
 * @param hKey Hash键
 * @param value 值
 */
public void hPut(final String key, final String hKey, final Object value) {

/**
 * @param key Redis键
 * @param values Hash键值对
 */
public void hPutAll(final String key, final Map values) {

/**
 * @param key Redis键
 * @param hKey Hash键
 * @return Hash中的对象
 */
public Object hGet(final String key, final String hKey) {

    return redisTemplate.opsForHash().get(key, hKey);
/**
 * @param key Redis键
 * @param hKeys Hash键集合
 * @return Hash对象集合
 */
public List hMultiGet(final String key, final Collection hKeys) {

    return redisTemplate.opsForHash().multiGet(key, hKeys);
// 存储Set相关操作

/**
 * @param key Redis键
 * @param values 值
 * @return 存入的个数
 */
public long sSet(final String key, final Object... values) {
    Long count = redisTemplate.opsForSet().add(key, values);
    return count == null ? 0 : count;
/**
 * @param key Redis键
 * @param values 值
 * @return 移除的个数
 */
public long sDel(final String key, final Object... values) {
    Long count = redisTemplate.opsForSet().remove(key, values);
    return count == null ? 0 : count;
// 存储List相关操作

/**
 * @param key Redis键
 * @param value 数据
 * @return 存入的个数
 */
public long lPush(final String key, final Object value) {
    Long count = redisTemplate.opsForList().rightPush(key, value);
    return count == null ? 0 : count;
/**
 * @param key Redis键
 * @param values 多个数据
 * @return 存入的个数
 */
public long lPushAll(final String key, final Collection values) {
    Long count = redisTemplate.opsForList().rightPushAll(key, values);
    return count == null ? 0 : count;
/**
 * @param key Redis键
 * @param values 多个数据
 * @return 存入的个数
 */
public long lPushAll(final String key, final Object... values) {
    Long count = redisTemplate.opsForList().rightPushAll(key, values);
    return count == null ? 0 : count;
/**
 * @param key Redis键
 * @param start 开始位置
 * @param end 结束位置(start=0,end=-1表示获取全部元素)
 * @return List对象
 */
public List lGet(final String key, final int start, final int end) {
    return redisTemplate.opsForList().range(key, start, end);
}
}

RedisUtils.java

以上就是土嘎嘎小编为大家整理的Java连接操作redis相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章