Redis Learning: Basic Use of Jedis
This article brings you relevant knowledge about Redis, which mainly organizes issues related to the basic use of Jedis, including basic Jedis operations, use of Jedis connection pools, etc., as follows Let's take a look, I hope it will be helpful to everyone.
Recommended learning: Redis video tutorial
1. Introduction to Jedis
Jedis = Java Redis
Redis can not only be operated using commands, but now basically mainstream languages have API support, such as Java, C#, C, PHP, Node.js, Go, etc. There are some Java clients listed on the official website, including Jedis, Redisson, Jredis, JDBC-Redis, etc. Among them, Jedis and Redisson are officially recommended.
To use Jedis to operate redis, you need to import the jar package as follows:
2. Basic operations of Jedis
2.1 Commonly used APIs for Jedis objects
Note: Each method is the command name in redis, and the parameters of the method are the parameters of the command
Method |
Function |
|||||||||||||||||||||
new Jedis(host, port) |
##CreateJedis connection, parameters: host name, port number 6379 |
|||||||||||||||||||||
## set(key,value) |
Add a string key and value |
|||||||||||||||||||||
get(key) |
##Get the specified key Value
|
|||||||||||||||||||||
| Delete the specified key and value||||||||||||||||||||||
Add a |
hash type key-field-value | ##hget(key,field)|||||||||||||||||||||
Get its value through the |
hash key-field | lpush(key,values)|||||||||||||||||||||
##Add a # from the left | ##List type keys and elements##lpop(key) |
|||||||||||||||||||||
Pop an element from the left |
##rpop(key) |
|||||||||||||||||||||
Pop an element from the right |
close() |
|||||||||||||||||||||
##Close the connection
|
##JedisPoolConfig configuration class |
Function Description |
JedisPoolConfig() |
Create a configuration object and just use the parameterless constructor |
void setMaxTotal() |
Set the maximum number of connections in the connection pool |
void setMaxWaitMillis() |
Set the maximum waiting time to get the connection object Jedis |
##JedisPool connection pool class |
##Description |
||||||
, Port number)Create connection pool | Parameter 1: The above configuration object, Parameter 2: Server name, Parameter 3: 6379|||||||
Get a Jedis connection object from the connection pool |
##void close() | ||||||
Connection pool closing method, usually does not close the connection pool |
3.3JedisPool的基本使用需求: 使用连接池优化jedis操作 开发步骤 创建连接池配置对象,设置最大连接数10,设置用户最大等待时间2000毫秒 通过配置对象做为参数,创建连接池对象 从连接池里面获取jedis连接对象,执行redis命令。 执行redis命令sadd写入set集合类型的数据:students=白骨精,孙悟空,猪八戒 执行redis命令smembers读取集合中的数据 输出读取的数据 关闭连接对象(通常连接池不关闭) 运行效果 执行代码 package com.itheima.jedis; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.Set; /** * 创建Jedis连接池 */ public class Demo2 { public static void main(String[] args) { //1) 创建连接池配置对象,设置最大连接数10,设置用户最大等待时间2000毫秒 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(10); config.setMaxWaitMillis(2000); //2) 通过配置对象做为参数,创建连接池对象 JedisPool pool = new JedisPool(config, "localhost", 6379); //3) 从连接池里面获取jedis连接对象,执行redis命令。 Jedis jedis = pool.getResource(); //4) 执行redis命令sadd写入set集合类型的数据:students=白骨精,孙悟空,猪八戒 jedis.sadd("students", "白骨精", "孙悟空", "猪八戒"); //5) 执行redis命令smembers读取集合中的数据 Set<String> students = jedis.smembers("students"); //6) 输出读取的数据 System.out.println(students); //7) 关闭连接对象(通常连接池不关闭) jedis.close(); pool.close(); } } Copy after login 4.案例:编写jedis连接池工具类4.1相应API的学习java.util.ResourceBundle类是专门用于:读取类路径下Properties配置文件的类
案例:得到druid.properties中的url属性 package com.itheima.jedis; import java.util.ResourceBundle; /** * 读取属性文件 */ public class Demo3 { public static void main(String[] args) { //得到资源绑定对象 ResourceBundle bundle = ResourceBundle.getBundle("druid"); System.out.println(bundle.getString("url")); } } Copy after login 4.2连接池工具类的实现需求: 实现连接池工具类,通过工具类得到Jedis连接对象,配置参数写在属性文件中 调用工具类,对Redis数据库进行操作 执行效果: 实现步骤: 在src目录下创建连接池的工具类: jedis.properties 创建静态成员变量JedisPool对象 在静态代码块中,读取src下的配置文件,得到ResourceBundle对象 得到上面的四个参数,其中host是字符串类型,其它参数要转成整数类型 实例化配置对象,实例化连接池对象 编写静态方法getJedis()返回Jedis对象 创建hash对象:键employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000 使用hgetall读取hash对象输出 关闭jedis对象 jedis.properties配置文件 # 主机名 host=localhost # 端口号 port=6379 # 最大连接数 maxTotal=20 # 最长等待时间 maxWaitMillis=3000 Copy after login JedisUtils.java package com.itheima.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import java.util.ResourceBundle; /** * 连接池工具类 */ public class JedisUtils { //创建一个连接对象 private static JedisPool pool; static { //创建连接池的配置对象 JedisPoolConfig config = new JedisPoolConfig(); //设置最大连接数和最长等待时间 ResourceBundle bundle = ResourceBundle.getBundle("jedis"); //得到配置文件中的属性值 String host = bundle.getString("host"); int port = Integer.parseInt(bundle.getString("port")); int maxTotal = Integer.parseInt(bundle.getString("maxTotal")); int maxWaitMillis = Integer.parseInt(bundle.getString("maxWaitMillis")); //设置配置对象的参数 config.setMaxTotal(maxTotal); config.setMaxWaitMillis(maxWaitMillis); //创建连接池对象 pool = new JedisPool(config, host, port); } /** * 得到redis连接对象 * @return */ public static Jedis getJedis() { return pool.getResource(); } } Copy after login 使用工具类: package com.itheima.jedis; import com.itheima.utils.JedisUtils; import redis.clients.jedis.Jedis; import java.util.Map; /** * 使用工具类 */ public class Demo4 { public static void main(String[] args) { //从工具类中得到Jedis对象 Jedis jedis = JedisUtils.getJedis(); //创建hash对象:键employee,添加字段名:name,值:NewBoy;字段名: salary,值:3000 jedis.hset("employee", "name","NewBoy"); jedis.hset("employee", "salary","3000"); //使用hgetall读取hash对象输出 Map<String, String> employee = jedis.hgetAll("employee"); System.out.println(employee); //关闭jedis对象 jedis.close(); } } Copy after login 推荐学习:Redis视频教程 |
The above is the detailed content of Redis Learning: Basic Use of Jedis. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Redis cluster mode deploys Redis instances to multiple servers through sharding, improving scalability and availability. The construction steps are as follows: Create odd Redis instances with different ports; Create 3 sentinel instances, monitor Redis instances and failover; configure sentinel configuration files, add monitoring Redis instance information and failover settings; configure Redis instance configuration files, enable cluster mode and specify the cluster information file path; create nodes.conf file, containing information of each Redis instance; start the cluster, execute the create command to create a cluster and specify the number of replicas; log in to the cluster to execute the CLUSTER INFO command to verify the cluster status; make

How to clear Redis data: Use the FLUSHALL command to clear all key values. Use the FLUSHDB command to clear the key value of the currently selected database. Use SELECT to switch databases, and then use FLUSHDB to clear multiple databases. Use the DEL command to delete a specific key. Use the redis-cli tool to clear the data.

To read a queue from Redis, you need to get the queue name, read the elements using the LPOP command, and process the empty queue. The specific steps are as follows: Get the queue name: name it with the prefix of "queue:" such as "queue:my-queue". Use the LPOP command: Eject the element from the head of the queue and return its value, such as LPOP queue:my-queue. Processing empty queues: If the queue is empty, LPOP returns nil, and you can check whether the queue exists before reading the element.

On CentOS systems, you can limit the execution time of Lua scripts by modifying Redis configuration files or using Redis commands to prevent malicious scripts from consuming too much resources. Method 1: Modify the Redis configuration file and locate the Redis configuration file: The Redis configuration file is usually located in /etc/redis/redis.conf. Edit configuration file: Open the configuration file using a text editor (such as vi or nano): sudovi/etc/redis/redis.conf Set the Lua script execution time limit: Add or modify the following lines in the configuration file to set the maximum execution time of the Lua script (unit: milliseconds)

Use the Redis command line tool (redis-cli) to manage and operate Redis through the following steps: Connect to the server, specify the address and port. Send commands to the server using the command name and parameters. Use the HELP command to view help information for a specific command. Use the QUIT command to exit the command line tool.

Redis counter is a mechanism that uses Redis key-value pair storage to implement counting operations, including the following steps: creating counter keys, increasing counts, decreasing counts, resetting counts, and obtaining counts. The advantages of Redis counters include fast speed, high concurrency, durability and simplicity and ease of use. It can be used in scenarios such as user access counting, real-time metric tracking, game scores and rankings, and order processing counting.

There are two types of Redis data expiration strategies: periodic deletion: periodic scan to delete the expired key, which can be set through expired-time-cap-remove-count and expired-time-cap-remove-delay parameters. Lazy Deletion: Check for deletion expired keys only when keys are read or written. They can be set through lazyfree-lazy-eviction, lazyfree-lazy-expire, lazyfree-lazy-user-del parameters.

In Debian systems, readdir system calls are used to read directory contents. If its performance is not good, try the following optimization strategy: Simplify the number of directory files: Split large directories into multiple small directories as much as possible, reducing the number of items processed per readdir call. Enable directory content caching: build a cache mechanism, update the cache regularly or when directory content changes, and reduce frequent calls to readdir. Memory caches (such as Memcached or Redis) or local caches (such as files or databases) can be considered. Adopt efficient data structure: If you implement directory traversal by yourself, select more efficient data structures (such as hash tables instead of linear search) to store and access directory information
