検索
ホームページデータベースRedisPythonを使用してRedisデータベースを操作する方法

はじめに

Redis は ANSI C 言語で書かれており、メモリ内で動作し、永続性をサポートするオープン ソースの Key-Value データベースです。豊富なデータ構造、トランザクション機能を備え、コマンドのアトミック性を保証します。インメモリ データベースの読み取りと書き込みは非常に高速であり、速度は 10w/s に達します。そのため、通常は、急速なデータ変更、リアルタイム通信、キャッシュなどのアプリケーション シナリオで使用されます。ただし、インメモリ データベースでは通常、マシンのメモリ サイズを考慮する必要があります。

Redis は 16 個の論理データベース (db0 ~ db15) を提供します。各論理データベースは互いに独立しています。指定しない場合は、デフォルトで db0 データベースが使用されます。 Python で接続する場合、たとえばコマンド select 2 を使用してデータベースを指定することで、2 番目のデータベースを選択できます。

#一般的に使用されるデータ構造

  • 文字列-文字列

  • リスト-リスト

  • ハッシュ-ハッシュ

  • セット-セット

  • Zセット順序セット

  • ビットマップ- Bitmap

Python では、redis-py ライブラリを使用して Redis データベースを操作します。これについては、以下で強調表示します。

前提条件: Redis データベースがインストールされている必要があります。インストールされていない場合は、ここをクリックしてください。

インストール

pip3 install redis

接続

最初の方法: 通常

import redis
 
redis_conn = redis.Redis(host='127.0.0.1', port= 6379, password= 'your pw', db= 0)

2 番目の方法: 接続プール

import redis
 
redis_pool = redis.ConnectionPool(host='127.0.0.1', port= 6379, password= 'your pw', db= 0)
redis_conn = redis.Redis(connection_pool= redis_pool)

Redis の文字戻り値の型はすべてバイト型です

String 文字列 (キーと値のペア)

Redis では、キーは値に対応します

1.文字列セットは単一のキー値を設定します

set(name, value, ex=None, px=None, nx =False, xx=False)

  • 例: 有効期限 (秒)、時間が経過すると Redis が自動的に削除します

  • px: 有効期限(ミリ秒)、時間が経過すると、redis が自動的に削除します。 ex と px

  • nx のいずれかを選択するだけです。True に設定すると、現在の設定操作は名前が存在しない場合にのみ実行されます

  • # #xx: True に設定すると、現在の設定操作は名前が存在する場合にのみ実行されます。

  • redis_conn.set('name_2', 'Zarten_2')

2.String get は単一の値を取得します

v = redis_conn.get('name_1')
print(v)

3.String mset は複数のキー値を設定します

mset(*args, **kwargs)

redis_conn.mset(name_1= 'Zarten_1', name_2= 'Zarten_2')

or

name_dict = {
    'name_4' : 'Zarten_4',
    'name_5' : 'Zarten_5'
}
redis_conn.mset(name_dict)

4.String mget は複数の値を取得します#mget(keys, *args)

m = redis_conn.mget('name_1', 'name_2')
#m = redis_conn.mget(['name_1', 'name_2']) 也行
print(m)

Pythonを使用してRedisデータベースを操作する方法

#5.String getset は既存の Set を新しい Set に与えますキーの値を返し、元の値を返します

getset(name, value)

指定されたキーが存在しない場合、新しい値が設定されますが、戻り値は Forなし

v = redis_conn.getset('name_1', 'hi')

6.String setrange インデックスに従ってキーの値を変更します

setrange(name, offset, value)

戻り値is: 変更された文字列の長さ

    name: キー、指定されたものが存在しない場合に自動的に追加されます
  • offset: オフセット、開始位置0
  • 値: 変更された文字または文字列、文字列はオフセットによって後方に拡張されます
  • length = redis_conn.setrange('name_2', 1, 'zhihu')
    print(length)

Pythonを使用してRedisデータベースを操作する方法

7.String getrange はインデックスに基づいてキーの値の一部を取得します

##指定されたキーが存在しない場合は、null 値 b'' が返されます

getrange (key、start、end)

v = redis_conn.getrange('name_4', 0, 2)

結果は次のとおりです:

##8.String strlen は値の長さを取得しますPythonを使用してRedisデータベースを操作する方法

strlen(name)指定されたキーが存在しない場合、戻り値は0

length = redis_conn.strlen('name_2')

9.String incr int型の値が増加(減少)します

同様: Decrement, decr(name, amount=1)

指定されたキーに対応する値は、整数または文字列値である必要があります。それ以外の場合は、エラーが発生します。報告されます。デフォルトの自動インクリメント範囲は 1incr(name, amount=1)

戻り値は次のとおりです: 変更された値、int 型

redis_conn.set('num_2', 2)
#redis_conn.set('num_2', '2') 都行
 
v = redis_conn.incr('num_2')

10。 String incrbyfloat 浮動小数点型の値がインクリメントされます

incrbyfloat(name, amount=1.0)戻り値は次のとおりです: 浮動小数点型 float

v = redis_conn.incrbyfloat('num_2')

11 .String 追加値の後に

append(key, value)指定されたキーが存在しない場合は、新しい値を設定します

戻り値は変更された値です 文字列の長さ

length = redis_conn.append('name_5', '666')

結果は次のようになります:

リスト list

Pythonを使用してRedisデータベースを操作する方法redis では、 key はリストに対応します

12.List lpush 値 rpush をリストの左側 (右側) に追加します

lpush(name, *values)複数の値がある場合、左からリストの左に右から左に追加するまで、タイプは異なる場合があります

指定されたキーが存在しない場合は、新しいリストを作成します

戻り値: リストのサイズ

v = redis_conn.lpush('Zarten', 1,2,3,4,5)
#v = redis_conn.lpush('Zarten', 6)

13.List lpushx キーが存在する場合、それをリストの左側の rpushx (右端) に追加します。 list Pythonを使用してRedisデータベースを操作する方法

lpushx(name, value)キーが存在する場合のみ追加されました。キーが存在しない場合、キーは追加されず、リストは作成されません。

返回值为:列表大小

v = redis_conn.lpushx('Zarten_1', 'hehe')

14.List llen 获取所给键的列表大小

llen(name)

v = redis_conn.llen('Zarten')

15.List linsert 在列表中间插入新值

linsert(name, where, refvalue, value)

  • name:键名

  • where:位置,前面(BEFORE)或后面(AFTER)

  • refvalue:指定哪个值的前后插入

  • value:插入的新值

返回值:插入后列表的长度,若返回-1,则refvalue不存在

插入前的数据:

Pythonを使用してRedisデータベースを操作する方法

v = redis_conn.linsert('Zarten', 'AFTER', 6, 'b')

插入后的数据:

Pythonを使用してRedisデータベースを操作する方法

16.List lset 列表中通过索引赋值

lset(name, index, value)

返回值:成功 True 否则 False

v = redis_conn.lset('Zarten', 2, 'cc')

17.List lindex 通过索引获取列表值

lindex(name, index)

v = redis_conn.lindex('Zarten', 2)

18.List lrange 列表中获取一段数据

lrange(name, start, end)

返回值:List类型的一段数据

v = redis_conn.lrange('Zarten', 2, 5)

19.List lpop 删除左边的第一个值 rpop(右边)

lpop(name)

返回值:被删除元素的值

v = redis_conn.rpop('Zarten')

20.List lrem 删除列表中N个相同的值

lrem(name, value, num=0)

  • name:键名

  • value:需删除的值

  • num:删除的个数 整数表示从左往右 负数表示从右往左 例如:2 -2

返回值:返回删除的个数

v = redis_conn.lrem('Zarten', 'hehe', -2)

21.List ltrim 删除列表中范围之外的所有值

ltrim(name, start, end)

返回值:成功 True

v = redis_conn.ltrim('Zarten', 5, 10)

22.List blpop 删除并返回列表最左边的值 brpop(最右边)

blpop(keys, timeout=0)

  • keys:给定的键

  • timeout:等待超时时间,默认为0,表示一直等待

返回值:tuple类型 形如: (键名, 删除的值) (b'Zarten', b'hehe')

v = redis_conn.blpop('Zarten')

23.List rpoplpush 一个列表中最右边值取出后添加到另一个列表的最左边 brpoplpush阻塞版本

rpoplpush(src, dst)

brpoplpush(src, dst, timeout=0)为rpoplpush的阻塞版本,timeout为0时,永远阻塞

返回值:取出的元素值

v = redis_conn.rpoplpush('Zarten', 'Zhihu')

Hash 哈希

内部存储为各个键值对

Pythonを使用してRedisデータベースを操作する方法

24.Hash hset 哈希中添加一个键值对

hset(name, key, value)

key存在,则修改,否则添加

返回值:返回添加成功的个数 int

v = redis_conn.hset('Zarten', 'age', 10)

25.Hash hmset 设置哈希中的多个键值对

hmset(name, mapping)

mapping:dict 类型

返回值:成功 True

v = redis_conn.hmset('Zarten', {'sex':1, 'tel':'123'})

26.Hash hmget 获取哈希中多个键值对

hmget(name, keys, *args)

返回值:值的列表 list 形如: [b'1', b'123']

v = redis_conn.hmget('Zarten', ['sex', 'tel'])
#v = redis_conn.hmget('Zarten', 'sex', 'tel') 也ok

27.Hash hget 获取指定key的值

hget(name, key)

v = redis_conn.hget('Zarten', 'age')

28.Hash hgetall 获取哈希中所有的键值对

hgetall(name)

返回值:dict类型

v = redis_conn.hgetall('Zarten')

29.Hash hlen 获取哈希中键值对的个数

hlen(name)

v = redis_conn.hlen('Zarten')

30.Hash hkeys 获取哈希中所有的键key

hkeys(name)

返回值:list类型

v = redis_conn.hkeys('Zarten')

31.Hash hvals 获取哈希中所有的值value

hvals(name)

返回值:list类型

v = redis_conn.hvals('Zarten')

32.Hash hexists 检查哈希中是否有某个键key

hexists(name, key)

返回值:有 True ;否则 False

v = redis_conn.hexists('Zarten', 'b')

33.Hash hdel 删除哈希中键值对(key-value)

hdel(self, name, *keys)

返回值:int 删除的个数

v = redis_conn.hdel('Zarten', 'age')

34.Hash hincrby 自增哈希中key对应的value值(必须整数数值类型)

hincrby(name, key, amount=1)

若所给的key不存在则创建,amount默认增加1,可以为负数

返回值:int 增加后的数值

v = redis_conn.hincrby('Zarten', 'sex', -3)

35.Hash hincrbyfloat 自增浮点数 同上hincrby

hincrbyfloat(name, key, amount=1.0)

36.Hash expire 设置整个键的过期时间

expire(name, time)

time:秒,时间一到,立马自动删除

v = redis_conn.expire('Zarten', 10)

37.Hash hscan 增量迭代获取哈希中的数据

hscan(name, cursor=0, match=None, count=None)

  • name:redis的name

  • cursor:游标(基于游标分批取获取数据)

  • match:匹配指定key,默认None 表示所有的key

  • count:每次分片最少获取个数,默认None表示采用Redis的默认分片个数

返回值:tuple 类型 ;(扫描位置,所有dict数据)

v = redis_conn.hscan('Zarten')

38.Hash hscan_iter 返回hscan的生成器

hscan_iter(name, match=None, count=None)

参照上面函数hscan

v = redis_conn.hscan_iter('Zarten')
for i in v:
    print(type(i), i)

Pythonを使用してRedisデータベースを操作する方法

Set 集合

集合中的元素不重复,一般用于过滤元素

39.Set sadd 添加元素到集合中

sadd(name, *values)

若插入已有的元素,则自动不插入

v = redis_conn.sadd('Zarten', 'apple', 'a', 'b', 'c')

40.Set scard 返回集合中元素的个数

scard(name)

v = redis_conn.scard('Zarten')

41.Set smembers 获取集合中的所有元素

smembers(name)

返回值:set类型,形如: {b'a', b'apple', b'c', b'b'}

v = redis_conn.smembers('Zarten')

42.Set srandmember 随机获取一个或N个元素

srandmember(name, number=None)

  • name:键名

  • number:一个或N个,默认返回一个。若返回N个,则返回List类型

返回值:返回一个值或一个列表

v = redis_conn.srandmember('Zarten', 2)

43.Set sismember 判断某个值是否在集合中

sismember(name, value)

返回值:True 在 False 不在

v = redis_conn.sismember('Zarten', 'appl')

44.Set spop 随机删除并返回集合中的元素

spop(name)

v = redis_conn.spop('Zarten')

45.Set srem 删除集合中的一个或多个元素

srem(name, *values)

返回值:返回删除的个数 int

v = redis_conn.srem('Zarten', 'c', 'a')

46.Set smove 将一个集合中的值移动到另一个集合中

smove(src, dst, value)

若value不存在时,返回False

返回值:成功 True

v = redis_conn.smove('Zarten', 'Fruit', 'apple')

47.Set sdiff 返回在一个集合中但不在其他集合的所有元素(差集)

sdiff(keys, *args)

在keys集合中,不在其他集合中的元素

返回值:set类型 {b'2', b'4', b'3', b'1'}

v = redis_conn.sdiff('Zarten', 'Fruit')

48.Set sdiffstore 上面的sdiff的返回值(差集)保存在另一个集合中

sdiffstore(dest, keys, *args)

在keys集合中,不在其他集合中的元素保存在dest集合中

  • dest:新的集合,设置的新集合,旧集合会被覆盖

返回值:int 返回作用的个数

v = redis_conn.sdiffstore('Left', 'Zarten', 'Fruit')

49.Set sinter 返回一个集合与其他集合的交集

sinter(keys, *args)

返回值:set类型

v = redis_conn.sinter('Zarten', 'Fruit')

50.Set sinterstore 返回一个集合与其他集合的交集,并保存在另一个集合中

sinterstore(dest, keys, *args)

  • dest:另一个集合,设置新集合,旧集合元素会被覆盖

v = redis_conn.sinterstore('Left', 'Zarten', 'Fruit')

51.Set sunion 返回一个集合与其他集合的并集

sunion(keys, *args)

v = redis_conn.sunion('Zarten', 'Fruit')

52.Set sunionstore 返回一个集合与其他集合的并集,并保存在另一个集合中

sunionstore(dest, keys, *args)

  • dest:另一个集合,设置新集合,旧集合元素会被覆盖

返回值:新集合元素个数

v = redis_conn.sunionstore('Left', 'Zarten', 'Fruit')

Zset 有序集合

有序集合比集合多了一个分数的字段,可对分数升序降序

53.Zset zadd 有序集合中添加元素

zadd(name, *args, **kwargs)

添加元素时需指定元素的分数

返回值:返回添加的个数

2种方式如下:

v = redis_conn.zadd('Zarten', 'a', 3, 'b', 4)
#v = redis_conn.zadd('Zarten', c= 5, d= 6)

Pythonを使用してRedisデータベースを操作する方法

54.Zset zcard 返回有序集合中元素个数

zcard(name)

v = redis_conn.zcard('Zarten')

55.Zset zcount 返回有序集合中分数范围内的元素个数

zcount(name, min, max)

包含min max

返回值:个数 int

v = redis_conn.zcount('Zarten', 3, 5)

56.Zset zscore 返回有序集合中指定某个值的分数

zscore(name, value)

返回值:float 类型的分数;形如: -5.0

v = redis_conn.zscore('Zarten', 'zhi')

57.Zset zincrby 增加有序集合中某个值的分数

zincrby(name, value, amount=1)

  • value:若存在,则增加其amount分数;若不存在,则增加新值以及对应的分数

  • amount:增加的值,可以为负数

返回值:增加后的分数 float类型 ;形如: -5.0

v = redis_conn.zincrby('Zarten', 'zhi', -5)

58.Zset zrem 删除有序集合中的某个或多个值

zrem(name, *values)

返回值:返回删除的个数

v = redis_conn.zrem('Zarten', 'zhi', 'a')

59.Zset zremrangebyrank 删除有序集合元素根据排序范围

zremrangebyrank(name, min, max)

返回值:删除个数 int

Pythonを使用してRedisデータベースを操作する方法

v = redis_conn.zremrangebyrank('Zarten', 1, 3)

删除后如下图:

Pythonを使用してRedisデータベースを操作する方法

60.Zset zremrangebyscore 删除有序集合根据分数范围

zremrangebyscore(name, min, max)

返回值:删除个数 int

v = redis_conn.zremrangebyscore('Zarten', 8, 15)

61.Zset zrank 返回某个值在有序集合中的分数排名(从小到大) zrevrank(从大到小)

zrank(name, value)

返回值:value在name中的分数排名值,分数从小到大排名,从0开始

Pythonを使用してRedisデータベースを操作する方法

v = redis_conn.zrank('Zarten', 'b')

返回值如下图:

Pythonを使用してRedisデータベースを操作する方法

62.Zset zrange 返回有序集合分数排序的一段数据

zrange(name, start, end, desc=False, withscores=False, score_cast_func=float)

  • name:redis的name

  • start:有序集合索引起始位置(非分数)

  • end:有序集合索引结束位置(非分数)

  • desc:排序规则,默认按照分数从小到大排序

  • withscores:是否获取元素的分数,默认只获取元素的值

  • score_cast_func:对分数进行数据转换的函数

返回值:list类型 [(b'tt', 10.0), (b'd', 6.0), (b'c', 5.0)]

Pythonを使用してRedisデータベースを操作する方法

v = redis_conn.zrange('Zarten', 1, 3, True, True, score_cast_func=float)

结果如图:

Pythonを使用してRedisデータベースを操作する方法

Bitmap 位图

bitmap中存放二进制的位0和1,类似位数组。典型应用是基于redis的布隆过滤器。

属于String字符串数据结构,固bit 映射被限制在 512 MB 之内(2^32)

63.Bitmap setbit 设置位图的值

setbit(name, offset, value)

  • name:redis键名

  • offset:偏移量,大于等于0。当偏移伸展时,空白位置以0填充

  • value:二进制值 0或1

v = redis_conn.setbit('Zarten_2', 100, 1)

64.Bitmap getbit 返回位图指定偏移量的值

getbit(name, offset)

返回0或1

v = redis_conn.getbit('Zarten_2', 101)

65.Bitmap bitcount 返回位图中二进制为1的总个数

bitcount(key, start=None, end=None)

start end指定开始和结束的位,默认整个位图

v = redis_conn.bitcount('Zarten_2', 100, 1000)

全局函数

全局函数对任何数据结构都适用

66.全局函数 delete 删除redis中一个或多个键的所有数据

delete(*names)

返回值:int 删除的个数

v = redis_conn.delete('name', 'name_1')

67.全局函数 exists 判断redis中是否存在某个键

exists(name)

返回值:存在True;反之False

v = redis_conn.exists('name')

68.全局函数 rename 重命名redis中键名

rename(src, dst)

返回值:成功True

v = redis_conn.rename('name_2', 'name_100')

69.全局函数 move 移动redis中某个键所有数据到某个db中

move(name, db)

返回值:成功True

v = redis_conn.move('name_100', 12)

70.全局函数 randomkey 随机获取redis中某个键名

randomkey()

返回值:形如: b'name_55'

v = redis_conn.randomkey()

71.全局函数 type 查看redis中某个键数据结构类型

type(name)

返回值:字符串(字节形式) 形如: b'hash'

  • none (key不存在)

  • string (字符串)

  • list (列表)

  • set (集合)

  • zset (有序集)

  • hash (哈希表)

v = redis_conn.type('name_4')

以上がPythonを使用してRedisデータベースを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は亿速云で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Redis:アプリケーションのパフォーマンスとスケーラビリティの向上Redis:アプリケーションのパフォーマンスとスケーラビリティの向上Apr 17, 2025 am 12:16 AM

Redisは、データをキャッシュし、分散ロックとデータの持続性を実装することにより、アプリケーションのパフォーマンスとスケーラビリティを向上させます。 1)キャッシュデータ:Redisを使用して頻繁にアクセスしたデータをキャッシュして、データアクセス速度を向上させます。 2)分散ロック:Redisを使用して分散ロックを実装して、分散環境での操作のセキュリティを確保します。 3)データの持続性:データの損失を防ぐために、RDBおよびAOFメカニズムを介してデータセキュリティを確保します。

Redis:データモデルと構造の調査Redis:データモデルと構造の調査Apr 16, 2025 am 12:09 AM

Redisのデータモデルと構造には、5つの主要なタイプが含まれます。1。文字列:テキストまたはバイナリデータの保存に使用され、原子操作をサポートします。 2。リスト:キューとスタックに適した注文された要素コレクション。 3.セット:順序付けられていない一意の要素セット、セット操作をサポートします。 4。注文セット(sortedset):ランキングに適したスコアを持つ一意の要素セット。 5。ハッシュテーブル(ハッシュ):オブジェクトの保存に適したキー価値ペアのコレクション。

Redis:データベースアプローチの分類Redis:データベースアプローチの分類Apr 15, 2025 am 12:06 AM

Redisのデータベースメソッドには、メモリ内データベースとキー価値ストレージが含まれます。 1)Redisはデータをメモリに保存し、速く読み取り、書き込みます。 2)キー価値のペアを使用してデータを保存し、キャッシュやNOSQLデータベースに適したリスト、コレクション、ハッシュテーブル、注文コレクションなどの複雑なデータ構造をサポートします。

なぜRedisを使用するのですか?利点と利点なぜRedisを使用するのですか?利点と利点Apr 14, 2025 am 12:07 AM

Redisは、高速パフォーマンス、リッチデータ構造、高可用性とスケーラビリティ、持続性能力、幅広いエコシステムサポートを提供するため、強力なデータベースソリューションです。 1)非常に速いパフォーマンス:Redisのデータはメモリに保存され、非常に速い読み取り速度と書き込み速度が高く、高い並行性と低レイテンシアプリケーションに適しています。 2)豊富なデータ構造:さまざまなシナリオに適したリスト、コレクションなど、複数のデータ型をサポートします。 3)高可用性とスケーラビリティ:マスタースレーブの複製とクラスターモードをサポートして、高可用性と水平スケーラビリティを実現します。 4)持続性とデータセキュリティ:データの整合性と信頼性を確保するために、データの持続性がRDBとAOFを通じて達成されます。 5)幅広い生態系とコミュニティのサポート:巨大なエコシステムとアクティブなコミュニティにより、

NOSQLの理解:Redisの重要な機能NOSQLの理解:Redisの重要な機能Apr 13, 2025 am 12:17 AM

Redisの主な機能には、速度、柔軟性、豊富なデータ構造のサポートが含まれます。 1)速度:Redisはメモリ内データベースであり、読み取り操作はほとんど瞬間的で、キャッシュとセッション管理に適しています。 2)柔軟性:複雑なデータ処理に適した文字列、リスト、コレクションなど、複数のデータ構造をサポートします。 3)データ構造のサポート:さまざまなビジネスニーズに適した文字列、リスト、コレクション、ハッシュテーブルなどを提供します。

Redis:主要な機能を特定しますRedis:主要な機能を特定しますApr 12, 2025 am 12:01 AM

Redisのコア関数は、高性能のメモリ内データストレージおよび処理システムです。 1)高速データアクセス:Redisはデータをメモリに保存し、マイクロ秒レベルの読み取り速度と書き込み速度を提供します。 2)豊富なデータ構造:文字列、リスト、コレクションなどをサポートし、さまざまなアプリケーションシナリオに適応します。 3)永続性:RDBとAOFを介してディスクにデータを持続します。 4)サブスクリプションを公開:メッセージキューまたはリアルタイム通信システムで使用できます。

Redis:一般的なデータ構造のガイドRedis:一般的なデータ構造のガイドApr 11, 2025 am 12:04 AM

Redisは、次のようなさまざまなデータ構造をサポートしています。1。文字列、単一価値データの保存に適しています。 2。キューやスタックに適したリスト。 3.非重複データの保存に使用されるセット。 4。ランキングリストと優先キューに適した注文セット。 5。オブジェクトまたは構造化されたデータの保存に適したハッシュテーブル。

Redisカウンターを実装する方法Redisカウンターを実装する方法Apr 10, 2025 pm 10:21 PM

Redisカウンターは、R​​edisキー価値ペアストレージを使用して、カウンターキーの作成、カウントの増加、カウントの減少、カウントのリセット、およびカウントの取得など、カウント操作を実装するメカニズムです。 Redisカウンターの利点には、高速速度、高い並行性、耐久性、シンプルさと使いやすさが含まれます。ユーザーアクセスカウント、リアルタイムメトリック追跡、ゲームのスコアとランキング、注文処理などのシナリオで使用できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール