preface
In the learning process, it is found that the Zset of redis can also be used to realize the lightweight delayed message queuing function. Although the reliability needs to be improved, it can be realized for some functions that require less data reliability. This paper mainly uses zadd, zrangebycore and zdel in Zset of redis to realize a small demo.
When you install Redis from homebrew, it places a file on /Library/LaunchAgents, that has this exact purpose you want. But as you might know, you need to activate it. Here’s how: $ launchctl load /Library/LaunchAgents/homebrew.mxcl.redis.plist. And to keep redis from starting along with your system, just run the same command, with.un.load. Meet Red: the only full-featured, professional Redis client written from the ground-up for the Mac! Red provides a powerful yet wonderfully simple interface to interact with Redis. Quickly view your data:. Watch your keys appear and expire in real-time with Live Updates. View data as unicode strings, hexadecimal, JSON, or MsgPack.
Prepare to install redis, redis go in advance
Because the Mac OS is used
Because it is lazy, the objectid in bson is directly used to generate the unique ID of the task
The unique ID is not required, but if there is a practical application to carry, it is easy to find the corresponding task.
producer
10W tasks are generated through a for loop, each with a different time
The addjob function is in another package, which takes the randomly generated time in the previous function as the timestamp to be processed
consumer
The consumer processing process is divided into two steps:
- Gets tasks less than or equal to the current timestamp
- By deleting the current task to determine who has obtained the current task
This is because when obtaining tasks less than or equal to the current timestamp, multiple go routines may read the current task at the same time, and only one task can process the current task. Therefore, we need to use a scheme to determine who will handle the task (of course, if only one consumer can read it, it will be handled directly): at this time, it can be obtained through the deletion operation of redis, because only the successful operation will return non-zero when deleting the specified value, so we can think of the go that successfully deleted the current queue Routine got the current assignment.
Here is the code:
Redis part of the code, get the task and delete the task
Redis Client On Mac Os
That’s pretty much the code. Finally, after running, I can deal with 1W tasks every 3-4 seconds
Redis Client On Mac High Sierra
The above is the whole content of this article, I hope to help you in your study, and I hope you can support developeppaer more.
I probably spend more time than most in redis-cli, because I find it invaluable when I’m writing software or getting to know a new module. If I didn’t have redis-cli, understanding Redis’ data structures and testing connections would be far more complicated, and I probably would’ve stopped using Redis long ago.
Redis-cli by itself isn’t that complicated – it’s a REPL (read–eval–print loop) that speaks to the Redis server. However, getting this jewel of a tool is not straightforward for many. The source for redis-cli is included in the Redis github repository and is automatically compiled when you build Redis from source. But what happens if you can’t (or don’t want to) build Redis from source? It means you also don’t have redis-cli and building an entire database from source just to get access to the command-line interface (CLI) utility is overkill and sometimes not even an option.
In this post, I’ll share how to get redis-cli without installing or having to make a full Redis server, but first let’s look at a couple scenarios.
Problem: Can’t built Redis from source
For those of us on Linux or macOS, building Redis from source involves having the relevant compilers and tools on your system and running make, which produces both the CLI and the Redis server. For most developers on these platforms, that’s not a huge burden.
However, if you’re not on a unix-like system, things get complicated quickly. For various reasons, you can’t just compile Redis on Windows. Microsoft once supported a fork of Redis that ran directly on Windows-based machines, but it’s no longer maintained. That means that, on Windows, you can’t get a current version of redis-cli. While it’s possible to use the Windows Subsystem for Linux that can run Redis, this has its own challenges, such as file system limitations and just generally not feeling native or appropriate for the system. In addition, there are many developers who have development machines locked down in fun and creative ways to explicitly block this type of operation.
Finally, you might be in a situation where you’re on a low-spec server and you just need to do some quick checks in Redis – getting the dependencies and building the software may not be possible in these constrained environments.
Problem: Don’t want to build Redis from source
There are many situations where you may be building software that uses Redis, but you’ll never personally manage or administer even a localhost process of Redis. Imagine if you’re using Redis Enterprise Cloud – you can have a Redis instance in seconds, but if you want to do anything with it you need to have CLI, which requires building the whole package from source. Or perhaps you’re at a large organization that is running a self-managed Redis Enterprise Software cluster. Here too, you may not have an actual need to build the Redis server on your development machine, since you just want to connect up remotely.
Finally, you might want to get up and running quickly. Pulling down the entire Redis C project (and all the tools needed to build that) might not be efficient for your workflow.
If you fall in one of the above scenarios, read on.
Invoking Atwood’s Law
In 2007, Jeff Atwood wrote, rather disparagingly:
“Any application that can be written in JavaScript will eventually be written in JavaScript.”
Bringing this to Redis, Lu Jiajing started a small project (less than 250 lines of JavaScript!) in 2015 to reimplement the overall operation of redis-cli in Node.js. Since then, it’s gotten closer to mimicking the Antirez-provided redis-cli. While not perfect (yet), it provides the bulk of the functionalities that you’d need on a day-to-day basis.
You may ask, why bother with this if you still have to install Node.js first? Well, first off, Node.js provides a much wider range of installation options than Redis. You can get it as a GUI msi for Windows or a pkg for macOS, as well as plain old compressed binaries for Windows, macOS or Linux, and you can also install Node.js via a package manager on many platforms.
Installing and running Node.js redis-cli
Once you’ve installed Node.js and npm, it’s a simple one-liner to get and install the Node.js version of redis-cli:
npm install -g redis-cli
Then you can run it with the command:
rdcli -h your.redis.host -a yourredispassword -p 11111
(using your relevant connection information).
Alternately, if you don’t like global installs, you can clone the repository and install the dependencies:
git clonehttps://github.com/lujiajing1126/redis-cli
cd redis-cli
npm install
Then you can run it from this directory by invoking the index.js file directly with the command line arguments:
node index.js -h your.redis.host -a yourredispassword -p 11111
(using your relevant connection information).
Redis-cli without building Redis
There you have it. You can get redis-cli up and running on your development machine quickly and easily with Node.js redis-cli written by Lu Jiajing. Instead of building the whole Redis project with C, you can just grab Node.js (even better if you already have it installed, and you probably do, let’s be honest), install this small module and start hacking away in Redis.
Bonus
One cool little use of this module is to make it a part of devDependencies in your package.json on a Node.js project. This way, you can effectively “pack-in” redis-cli with your project, making sure everyone on your team has the tool. To do this, install it as a development dependency:
npm install –save-dev redis-cli
Then in your package.json, add the following line to the beginning of the scripts object:
Redis Client Macbook
“rediscli”: “node ./node_modules/redis-cli/index.js”,
Now, anyone who has your project can start redis-cli by running:
Install Redis Client On Mac
npm start rediscli -h your.redis.host -a yourredispassword -p 11111
(using your relevant connection information).
Redis Desktop Client
You can even hard code in arguments if need be, but never include your Redis password in your package.json file!