{"id":26954535,"url":"https://github.com/silkjs/tedis","last_synced_at":"2025-04-10T03:50:00.233Z","repository":{"id":56515760,"uuid":"143674842","full_name":"silkjs/tedis","owner":"silkjs","description":"redis client with typescript and esnext for nodejs","archived":false,"fork":false,"pushed_at":"2023-12-04T06:29:51.000Z","size":984,"stargazers_count":149,"open_issues_count":20,"forks_count":19,"subscribers_count":5,"default_branch":"next","last_synced_at":"2024-04-27T05:40:17.547Z","etag":null,"topics":["async","promise","redis","typescript"],"latest_commit_sha":null,"homepage":"https://tedis.silkjs.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silkjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-08-06T04:05:17.000Z","updated_at":"2023-10-20T00:47:22.000Z","dependencies_parsed_at":"2023-12-04T07:23:48.279Z","dependency_job_id":"2d5f03fe-4f47-4d26-bda2-28ae5aaf976b","html_url":"https://github.com/silkjs/tedis","commit_stats":{"total_commits":50,"total_committers":3,"mean_commits":"16.666666666666668","dds":"0.040000000000000036","last_synced_commit":"e8c7a5fa6894378ca6fe22ff6752ea38ca0fd753"},"previous_names":["myour-cc/tedis"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silkjs%2Ftedis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silkjs%2Ftedis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silkjs%2Ftedis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silkjs%2Ftedis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silkjs","download_url":"https://codeload.github.com/silkjs/tedis/tar.gz/refs/heads/next","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246922243,"owners_count":20855345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","promise","redis","typescript"],"created_at":"2025-04-03T02:18:04.553Z","updated_at":"2025-04-03T02:18:05.113Z","avatar_url":"https://github.com/silkjs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tedis.silkjs.org/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\u003cimg src=\"./doc/.vuepress/public/icons/android-chrome-192x192.png\" alt=\"tedis logo\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://travis-ci.org/silkjs/tedis\"\u003e\u003cimg src=\"https://img.shields.io/travis/silkjs/tedis.svg\" alt=\"travis\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/silkjs/tedis/issues\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-raw/silkjs/tedis.svg\" alt=\"issues\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/silkjs/tedis\"\u003e\u003cimg src=\"https://img.shields.io/github/license/silkjs/tedis.svg\" alt=\"license\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/tedis\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/tedis.svg\" alt=\"package\"\u003e\u003c/a\u003e\n  \u003ca href='https://codecov.io/gh/silkjs/tedis'\u003e\u003cimg src='https://img.shields.io/codecov/c/github/silkjs/tedis.svg' alt='Coverage Status' /\u003e\u003c/a\u003e\n  \u003ca href=\"javascript:void(0)\" \u003e\u003cimg src=\"https://img.shields.io/github/tag/silkjs/tedis.svg\" alt=\"tag\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003ca href=\"javascript:void(0)\" \u003e\u003cimg src=\"https://img.shields.io/github/issues-pr/silkjs/tedis.svg\" alt=\"pr\"\u003e\u003c/a\u003e\n  \u003ca href=\"javascript:void(0)\" \u003e\u003cimg src=\"https://img.shields.io/github/release/silkjs/tedis.svg\" alt=\"release\"\u003e\u003c/a\u003e\n  \u003ca href=\"javascript:void(0)\" \u003e\u003cimg src=\"https://img.shields.io/github/languages/top/silkjs/tedis.svg\" alt=\"languages\"\u003e\u003c/a\u003e\n  \u003ca href=\"javascript:void(0)\" \u003e\u003cimg src=\"https://img.shields.io/github/languages/code-size/silkjs/tedis.svg\" alt=\"size\"\u003e\u003c/a\u003e\n  \u003ca href=\"javascript:void(0)\" \u003e\u003cimg src=\"https://img.shields.io/github/last-commit/silkjs/tedis.svg\" alt=\"commit\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003eSupporting Tedis\u003c/h2\u003e\n\n## Introduction\n\n### What is tedis\n\nTedis write with typescript, it's the client of redis for nodejs, support async with ts and commonjs\n\n### Installation\n\n```sh\nyarn add tedis\n```\n\n### Getting started\n\n\u003e commonjs\n\n```js\nconst { Tedis, TedisPool } = require(\"tedis\");\n```\n\n\u003e typescript\n\n```ts\nimport { Tedis, TedisPool } from \"tedis\";\n```\n\n```ts\n// no auth\nconst tedis = new Tedis({\n  port: 6379,\n  host: \"127.0.0.1\"\n});\n\n// auth\nconst tedis = new Tedis({\n  port: 6379,\n  host: \"127.0.0.1\",\n  password: \"your_password\"\n});\n```\n\n_tls_\n\n```ts\nconst tedis = new Tedis({\n  port: 6379,\n  host: \"127.0.0.1\",\n  tls: {\n    key: fs.readFileSync(__dirname + \"/client_server/client_key.pem\"),\n    cert: fs.readFileSync(__dirname + \"/client_server/client_cert.pem\")\n  }\n});\n```\n\n### TedisPool\n\n```ts\n// no auth\nconst pool = new TedisPool({\n  port: 6379,\n  host: \"127.0.0.1\"\n});\n\n// auth\nconst pool = new TedisPool({\n  port: 6379,\n  host: \"127.0.0.1\",\n  password: \"your_password\"\n});\n```\n\n```ts\nconst tedis = await pool.getTedis();\n// ... do some commands\npool.putTedis(tedis);\n```\n\n_tls_\n\n```ts\nconst tedis = new TedisPool({\n  port: 6379,\n  host: \"127.0.0.1\",\n  tls: {\n    key: fs.readFileSync(__dirname + \"/client_server/client_key.pem\"),\n    cert: fs.readFileSync(__dirname + \"/client_server/client_cert.pem\")\n  }\n});\n```\n\n### Example\n\n```ts\n/**\n * core\n */\nawait tedis.command(\"SET\", \"key1\", \"Hello\");\n// \"OK\"\nawait tedis.command(\"SET\", \"key2\", \"World\");\n// \"OK\"\n\n/**\n * key\n */\nawait tedis.keys(\"*\");\n// []\nawait tedis.exists(\"a\");\n// 0\n\n/**\n * string\n */\nawait tedis.set(\"mystring\", \"hello\");\n// \"OK\"\nawait tedis.get(\"mystring\");\n// \"hello\"\n\n/**\n * hash\n */\nawait tedis.hmset(\"myhash\", {\n  name: \"tedis\",\n  age: 18\n});\n// \"OK\"\nawait tedis.hgetall(\"myhash\");\n// {\n//   \"name\": \"tedis\",\n//   \"age\": \"18\"\n// }\n\n/**\n * list\n */\nawait tedis.lpush(\"mylist\", \"hello\", \"a\", \"b\", \"c\", \"d\", 1, 2, 3, 4);\n// 9\nawait tedis.llen(\"mylist\");\n// 9\n```\n\n## Type interface\n\n## base\n\n- [command](https://tedis.silkjs.org/api/base.html#command)\n- [on](https://tedis.silkjs.org/api/base.html#on)\n- [close](https://tedis.silkjs.org/api/base.html#close)\n\n## pool\n\n- [getTedis](https://tedis.silkjs.org/api/pool.html#getTedis)\n- [putTedis](https://tedis.silkjs.org/api/pool.html#putTedis)\n- [release](https://tedis.silkjs.org/api/pool.html#release)\n\n### key\n\n- [del](https://tedis.silkjs.org/api/key.html#del)\n- dump\n- [exists](https://tedis.silkjs.org/api/key.html#exists)\n- [expire](https://tedis.silkjs.org/api/key.html#expire)\n- [expireat](https://tedis.silkjs.org/api/key.html#expireat)\n- [keys](https://tedis.silkjs.org/api/key.html#keys)\n- migrate\n- [move](https://tedis.silkjs.org/api/key.html#move)\n- object\n- [persist](https://tedis.silkjs.org/api/key.html#persist)\n- [pexpire](https://tedis.silkjs.org/api/key.html#pexpire)\n- [pexpireat](https://tedis.silkjs.org/api/key.html#pexpireat)\n- [pttl](https://tedis.silkjs.org/api/key.html#pttl)\n- [randomkey](https://tedis.silkjs.org/api/key.html#randomkey)\n- [rename](https://tedis.silkjs.org/api/key.html#rename)\n- [renamenx](https://tedis.silkjs.org/api/key.html#renamenx)\n- restore\n- scan\n- sort\n- touch\n- [ttl](https://tedis.silkjs.org/api/key.html#ttl)\n- [type](https://tedis.silkjs.org/api/key.html#type)\n- unlink\n- wait\n\n### string\n\n- [append](https://tedis.silkjs.org/api/string.html#append)\n- bitcount\n- bitfield\n- bitop\n- bitpos\n- [decr](https://tedis.silkjs.org/api/string.html#decr)\n- [decrby](https://tedis.silkjs.org/api/string.html#decrby)\n- [get](https://tedis.silkjs.org/api/string.html#get)\n- [getbit](https://tedis.silkjs.org/api/string.html#getbit)\n- [getrange](https://tedis.silkjs.org/api/string.html#getrange)\n- [getset](https://tedis.silkjs.org/api/string.html#getset)\n- [incr](https://tedis.silkjs.org/api/string.html#incr)\n- [incrby](https://tedis.silkjs.org/api/string.html#incrby)\n- [incrbyfloat](https://tedis.silkjs.org/api/string.html#incrbyfloat)\n- [mget](https://tedis.silkjs.org/api/string.html#mget)\n- [mset](https://tedis.silkjs.org/api/string.html#mset)\n- [msetnx](https://tedis.silkjs.org/api/string.html#msetnx)\n- [psetex](https://tedis.silkjs.org/api/string.html#psetex)\n- [set](https://tedis.silkjs.org/api/string.html#set)\n- [setbit](https://tedis.silkjs.org/api/string.html#setbit)\n- [setex](https://tedis.silkjs.org/api/string.html#setex)\n- [setnx](https://tedis.silkjs.org/api/string.html#setnx)\n- [setrange](https://tedis.silkjs.org/api/string.html#setrange)\n- [strlen](https://tedis.silkjs.org/api/string.html#strlen)\n\n### hash\n\n- [hdel](https://tedis.silkjs.org/api/hash.html#hdel)\n- [hexists](https://tedis.silkjs.org/api/hash.html#hexists)\n- [hget](https://tedis.silkjs.org/api/hash.html#hget)\n- [hgetall](https://tedis.silkjs.org/api/hash.html#hgetall)\n- [hincrby](https://tedis.silkjs.org/api/hash.html#hincrby)\n- [hincrbyfloat](https://tedis.silkjs.org/api/hash.html#hincrbyfloat)\n- [hkeys](https://tedis.silkjs.org/api/hash.html#hkeys)\n- [hlen](https://tedis.silkjs.org/api/hash.html#hlen)\n- [hmget](https://tedis.silkjs.org/api/hash.html#hmget)\n- [hmset](https://tedis.silkjs.org/api/hash.html#hmset)\n- hscan\n- [hset](https://tedis.silkjs.org/api/hash.html#hset)\n- [hsetnx](https://tedis.silkjs.org/api/hash.html#hsetnx)\n- [hstrlen](https://tedis.silkjs.org/api/hash.html#hstrlen)\n- [hvals](https://tedis.silkjs.org/api/hash.html#hvals)\n\n### list\n\n- [blpop](https://tedis.silkjs.org/api/list.html#blpop)\n- [brpop](https://tedis.silkjs.org/api/list.html#brpop)\n- [brpoplpush](https://tedis.silkjs.org/api/list.html#brpoplpush)\n- [lindex](https://tedis.silkjs.org/api/list.html#lindex)\n- [linsert](https://tedis.silkjs.org/api/list.html#linsert)\n- [llen](https://tedis.silkjs.org/api/list.html#llen)\n- [lpop](https://tedis.silkjs.org/api/list.html#lpop)\n- [lpush](https://tedis.silkjs.org/api/list.html#lpush)\n- [lpushx](https://tedis.silkjs.org/api/list.html#lpushx)\n- [lrange](https://tedis.silkjs.org/api/list.html#lrange)\n- [lrem](https://tedis.silkjs.org/api/list.html#lrem)\n- [lset](https://tedis.silkjs.org/api/list.html#lset)\n- [ltrim](https://tedis.silkjs.org/api/list.html#ltrim)\n- [rpop](https://tedis.silkjs.org/api/list.html#rpop)\n- [rpoplpush](https://tedis.silkjs.org/api/list.html#rpoplpush)\n- [rpush](https://tedis.silkjs.org/api/list.html#rpush)\n- [rpushx](https://tedis.silkjs.org/api/list.html#rpushx)\n\n### set\n\n- [sadd](https://tedis.silkjs.org/api/set.html#sadd)\n- [scard](https://tedis.silkjs.org/api/set.html#scard)\n- [sdiff](https://tedis.silkjs.org/api/set.html#sdiff)\n- [sdiffstore](https://tedis.silkjs.org/api/set.html#sdiffstore)\n- [sinter](https://tedis.silkjs.org/api/set.html#sinter)\n- [sinterstore](https://tedis.silkjs.org/api/set.html#sinterstore)\n- [sismember](https://tedis.silkjs.org/api/set.html#sismember)\n- [smembers](https://tedis.silkjs.org/api/set.html#smembers)\n- [smove](https://tedis.silkjs.org/api/set.html#smove)\n- [spop](https://tedis.silkjs.org/api/set.html#spop)\n- [srandmember](https://tedis.silkjs.org/api/set.html#srandmember)\n- [srem](https://tedis.silkjs.org/api/set.html#srem)\n- sscan\n- [sunion](https://tedis.silkjs.org/api/set.html#sunion)\n- [sunionstore](https://tedis.silkjs.org/api/set.html#sunionstore)\n\n### zset\n\n- bzpopmax\n- bzpopmin\n- [zadd](https://tedis.silkjs.org/api/zset.html#zadd)\n- [zcard](https://tedis.silkjs.org/api/zset.html#zcard)\n- [zcount](https://tedis.silkjs.org/api/zset.html#zcount)\n- [zincrby](https://tedis.silkjs.org/api/zset.html#zincrby)\n- [zinterstore](https://tedis.silkjs.org/api/zset.html#zinterstore)\n- [zlexcount](https://tedis.silkjs.org/api/zset.html#zlexcount)\n- zpopmax\n- zpopmin\n- [zrange](https://tedis.silkjs.org/api/zset.html#zrange)\n- [zrangebylex](https://tedis.silkjs.org/api/zset.html#zrangebylex)\n- [zrangebyscore](https://tedis.silkjs.org/api/zset.html#zrangebyscore)\n- [zrank](https://tedis.silkjs.org/api/zset.html#zrank)\n- [zrem](https://tedis.silkjs.org/api/zset.html#zrem)\n- [zremrangebylex](https://tedis.silkjs.org/api/zset.html#zremrangebylex)\n- [zremrangebyrank](https://tedis.silkjs.org/api/zset.html#zremrangebyrank)\n- [zremrangebyscore](https://tedis.silkjs.org/api/zset.html#zremrangebyscore)\n- [zrevrange](https://tedis.silkjs.org/api/zset.html#zrevrange)\n- zrevrangebylex\n- [zrevrangebyscore](https://tedis.silkjs.org/api/zset.html#zrevrangebyscore)\n- [zrevrank](https://tedis.silkjs.org/api/zset.html#zrevrank)\n- zscan\n- [zscore](https://tedis.silkjs.org/api/zset.html#zscore)\n- [zunionstore](https://tedis.silkjs.org/api/zset.html#zunionstore)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilkjs%2Ftedis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilkjs%2Ftedis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilkjs%2Ftedis/lists"}