setnx:添加一个String类型的键值对,前提是这个key不存在,否则不执行
setex:添加一个String类型的键值对,并且指定有效期
hset key field value:添加或修改hash类型key的field值
hget key field:获取一个hash类型key的field的值
hgetall:获取一个hash类型的key中的所有的field和value
hkeys:获取一个hash类型的key中的所有的field
hvalues:获取一个hash类型的key中的所有的value
hincrby:让一个hash类型key的字段值自增并指定步长
hsetnx:添加一个String类型的键值对,前提是这个key不存在,否则不执行
LPUSH key element:向列表左侧插入一个或多个元素
LPOP key:移除并返回列表左侧的第一个元素,没有则返回null
RPUSH key element:像列表右侧插入一个或多个元素
LRANGE key star end:返回一段角标范围内的所有元素
BLPOP和BRPOP:与LPOP和RPOP类似,只不过在没有元素时等待指定时间,而不是返回null
SADD key member:向set中添加一个或多个元素
SISMEMBER key member:判断一个元素是否存在于set中
SINTER key1 key2:求key1与key2的交集
SUNION key1 key2:求key1与key2的并集
ZADD key score member:添加一个或多个元素到sorted set,如果已经存在则更新其score值
ZREM key member:删除sorted set中的一个指定元素
ZSCORE key member:获取sorted set中的指定元素的score值
ZRANK key member:获取sorted set中的指定元素的排名
ZCOUNT key min max:统计score值在给定范围内的所有元素的个数
ZlINCRBY key increment member: 让sorted set中的指定元素自增,步长为指定的increment值
ZRANGE key min max:按照score排序后,获取指定排名范围内的元素
ZRANGEBYSCORE key min max:按照score排序后,获取指定score范围内的元素
KEYS:查看复合模版的所有key(不建议在生产环境设备上使用)
EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除
以Redis命令作为方法名称,线程实例不安全,多线程环境下需要基于连接池使用
基于Netty实现的,支持同步、异步和响应式编程方式,并且是线程安全的.支持Redis的哨兵模式、集群模式和管道模式
基于Redis实现的分布式、可伸缩的Java数据结构集合.包含了如Map、Queue、Lock、Semaphore、AtomicLong等强大功能
1 <dependency> 2 <groupId>redis.clients</groupId> 3 <artifactId>jedis</artifactId> 4 <version>4.3.0</version> 5 </dependency>
1 private Jedis jedis; 2 3 @BeforeEach 4 void setUp(){ 5 //建立连接 6 jedis = new Jedis("192.168.150.101",6379); 7 //设置密码 8 jedis.auth("123456"); 9 //选择库 10 jedis.select(0); 11 }
1 @Test 2 void testString(){ 3 //插入数据,方法名称就是redis命令名称 4 String result = jedis.set("name","张三"); 5 System.out.println("result = " + result); 6 //获取数据 7 String name = jedis.get("name"); 8 Symtem.out.println("name" + name); 9 }
@AfterEach void tearDown(){ //释放资源 if (jedis != null){ jedis.close(); } }
Jedis本身是线程不安全的,频繁的创建和销毁连接会有性能损耗
public class JedisConnectionFactory { private static final JedisPool jedisPool; static { JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); //最大连接 jedisPoolConfig.setMaxTotal(8); //最大空闲连接 jedisPoolConfig.setMaxIdle(8); //最小空闲连接 jedisPoolConfig.setMinIMle(o); // 设置最长等待时间, ms jedisPoolConfig.setMaxWaitMillis(200); jedisPool = new JedisPool(jedisPoolConfig,"192.168.150.101",6379,1000,"123321"); } // 获取Jedis对象 public static Jedis getJedis(){ return jedisPool.getResource(); } }

