redis在php中的应用(string篇)
string(字符串)
1、SET
Redis SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
语法:
redis 127.0.0.1:6379> SET KEY_NAME VALUE
返回值: 设置成功时返回 OK 。当seconds参数不合法时,返回一个错误。
可用版本:>= 2.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: 最字符串类型的 key 进行 set $redis -> set('favorite_fruit','apple'); var_dump($redis -> get('favorite_fruit')); // string apple// This second case: 最非字符串类型的 key 进行 set $redis -> lPush('pats','dog'); $redis -> type('pats'); // list $redis -> set('pats','cat'); // 不管类型为什么,都可以完成覆盖 var_dump($redis -> get('pats')); // string cat
2、SETNX
Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。
语法:
redis 127.0.0.1:6379> SETNX KEY_NAME VALUE
返回值: 设置成功,返回 1 。 设置失败,返回 0 。
可用版本: >= 1.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();$redis -> setnx('job','programmer'); $redis -> setnx('job','code-farmer'); var_dump($redis -> get('job')); // string programmer ,没有被覆盖
3、SETEX
Redis Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
语法:
redis 127.0.0.1:6379> SETEX KEY_NAME TIMEOUT VALUE
该命令类似于一下 2 个命令:
$redis -> set('key','value'); // 设置值 $redis -> expire('key','seconds'); // 设置生存时间
不同之处在于,SETEX 是一个原子性操作,设置值和生存时间同时完成,该命令在redis用做缓存是非常有用。
返回值: 设置成功时返回OK。当seconds参数不合法时,返回一个错误。。
可用版本: >= 2.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 不存在 $redis -> setex('mykey',20,'redis'); echo $redis -> get('mykey'); // redis sleep(2); var_dump($redis -> ttl('mykey')); // 18// This second case: key 已存在,覆盖 $redis -> set('job','programmer'); $redis -> setex('job',10,'code-farmer'); echo $redis -> get('job'); // code sleep(2); var_dump($redis -> ttl('job')); // 8
4、SETRANGE
Redis Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
语法:
redis 127.0.0.1:6379> SETRANGE KEY_NAME OFFSET VALUE
返回值: 被修改后的字符串长度。
可用版本: >= 2.2.0
时间复杂度:对小(small)的字符串,平摊复杂度O(1)。(关于什么字符串是”小”的,请参考APPEND命令)否则为O(M),M为value参数的长度。
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: 对非空字符串进行 SETRANGE $redis -> set('key1','Hello world'); $redis -> setRange('key1',6,'redis'); var_dump($redis -> get('key1')); // Hello redis// This second case: 对空字符串进行 SETRANGE if(! $redis -> exists('fake_key')) {$redis -> setRange('fake_key',5,'redis');var_dump($redis -> get('fake_key')); // string '�����redis' (length=10) ,空白处被 � 填充了。 }
5、MSET
Redis Mset 命令用于同时设置一个或多个 key-value 对。
(1)当发现同名的key存在时,MSET会用新值覆盖旧值,如果你不希望覆盖同名key,请使用MSETNX命令。
(2)MSET是一个原子性(atomic)操作,所有给定key都在同一时间内被设置,某些给定key被更新而另一些给定key没有改变的情况,不可能发生。
语法:
redis 127.0.0.1:6379> MSET key1 value1 key2 value2 .. keyN valueN
返回值: 总是返回OK(因为MSET不可能失败)
可用版本: >= 1.0.1
时间复杂度:O(N),N为要设置的 key数量。
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: 没有旧值存在,同时设置多个值 $array_mset = array('year' => 2017,'month' => 5,'date' => 10,'time' => '11:04' ); $redis -> mset($array_mset); var_dump($redis -> keys('*')); // array (size=4) // 0 => string 'time' (length=4) // 1 => string 'date' (length=4) // 2 => string 'month' (length=5) // 3 => string 'year' (length=4)// This second case: 有旧值存在,完成覆盖。 $redis -> set('favorite_fruit','apple'); $array_mset = array('favorite_fruit'=>'banana'); $redis -> mset($array_mset); var_dump($redis -> get('favorite_fruit')); // banana
6、MSETNX
Redis Msetnx 命令用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
(1)即使只有一个key已存在,MSETNX也会拒绝所有传入key的设置操作
(2)MSETNX是原子性的,所有字段要么全被设置,要么全不被设置。
语法:
redis 127.0.0.1:6379> MSETNX key1 value1 key2 value2 .. keyN valueN
返回值: 当所有 key 都成功设置,返回 1 。 如果所有给定 key 都设置失败(至少有一个 key 已经存在),那么返回 0
可用版本: >= 1.0.1
时间复杂度:O(N),N为要设置的key的数量。
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: 没有旧值存在,同时设置多个值 $array_mset = array('year' => 2017,'month' => 5,'date' => 10,'time' => '14:59' ); $redis -> msetnx($array_mset); var_dump($redis -> keys('*')); // array (size=4) // 0 => string 'time' (length=4) // 1 => string 'date' (length=4) // 2 => string 'month' (length=5) // 3 => string 'year' (length=4)// This second case: 有旧值存在,无法完成覆盖。 $redis -> set('favorite_fruit','apple'); $array_mset = array('favorite_fruit'=>'banana'); var_dump($redis -> msetnx($array_mset)); // boolean false var_dump($redis -> get('favorite_fruit')); // apple , favorite_fruit的值并没有发生改变
7、APPEND
Redis Append 命令用于为指定的 key 追加值。
(1)如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
(2)如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。
语法:
redis 127.0.0.1:6379> APPEND KEY_NAME NEW_VALUE
返回值: 追加指定值之后, key 中字符串的长度。
可用版本: >= 2.0.0
时间复杂度:平摊复杂度O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: 对已存在的字符串 append ,追加到字符串末尾 $redis -> set('favorite_fruit','cherry '); $redis -> append('favorite_fruit','is very delicious'); var_dump($redis -> get('favorite_fruit')); // string 'cherry is very delicious'// This second case: 对不存在的字符串 append , 相当于 set 的功能 $redis -> del('job'); // 确保一个不存在的 key $redis -> append('job','PHPer'); var_dump($redis -> get('job')); // string 'PHPer'
8、GET
Redis Get 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误。
语法:
redis 127.0.0.1:6379> GET KEY_NAME
返回值: 返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。
可用版本: >= 1.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 存在且是字符串类型 $redis -> set('favorite_fruit','cherry'); var_dump($redis -> get('favorite_fruit')); // string 'cherry'// This second case: key 不存在 $redis -> del('fake_key'); // 确保一个不存在的 key var_dump($redis -> get('fake_key')); // boolean false// This third case: key 不在但不是字符串类型 $redis -> lPush('job','programmer'); // list 类型 var_dump($redis -> get('job')); // boolean false
9、MGET
Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
语法:
redis 127.0.0.1:6379> MGET KEY1 KEY2 .. KEYN
返回值:一个包含所有给定 key 的值的列表。
可用版本: >= 1.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: 给定的 key 都存在 $array_mset = array('year' => 2017,'month' => 5,'day' => 10,'time' => '15:31' ); $redis -> mset($array_mset); $array_mget = array('year','month','day','time'); var_dump($redis -> mget($array_mget)); // array (size=4) // 0 => string '2017' (length=4) // 1 => string '5' (length=1) // 2 => string '10' (length=2) // 3 => string '15:31' (length=5)// This second case:给定的 key 中有 key 不存在的情况 $array_mget = array('year','month','fake_key'); var_dump($redis -> mget($array_mget)); // array (size=3) // 0 => string '2017' (length=4) // 1 => string '5' (length=1) // 2 => boolean false
10、GETRANGE
Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil
语法:
redis 127.0.0.1:6379> GETRANGE KEY_NAME start end
返回值:截取得到的子字符串。
可用版本: >= 2.4.0(在<=2.0的版本里,GETRANGE被叫作SUBSTR。)
时间复杂度:O(N),N为要返回的字符串的长度。(复杂度最终由返回值长度决定,但因为从已有字符串中建立子字符串的操作非常廉价(cheap),所以对于长度不大的字符串,该操作的复杂度也可看作O(1))。
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();$redis -> set('mykey','hello world'); echo $redis -> getRange('mykey',0,-1) . '</br>'; // 从开头到结束, hello world echo $redis -> getRange('mykey',0,4) . '</br>'; // 从 0 到 4 , hello echo $redis -> getRange('mykey',-5,-1) . '</br>'; // 从 -5 到 -1 , world var_dump($redis -> getRange('mykey',-1,-5)). '</br> '; // 从 -1 到 -5 , "" ,不支持回绕操作 echo $redis -> getRange('mykey',0,100). '</br> '; // 从 0 到 100 , hello world ,若范围超过了字符串的长度,超过部分自动被忽略
11、GETSET
Redis Getset 命令用于设置指定 key 的值,并返回 key 旧的值。
语法:
redis 127.0.0.1:6379> GETSET KEY_NAME VALUE
返回值:返回给定 key 的旧值。
(1)当 key 没有旧值时,即 key 不存在时,返回 nil 。
(3)当 key 存在但不是字符串类型时,返回一个错误。
可用版本: >= 1.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 值存在且为字符串类型 $redis -> set('favorite_fruit','cherry'); var_dump($redis -> getSet('favorite_fruit','pineapple')); // cherry// This second case: key 值存在但不为字符串类型 $redis -> lPush('job','programmer'); var_dump($redis -> getSet('job','code-farmer')); // boolean false// This third case: key 值不存在 $redis -> del('fake_key'); var_dump($redis -> getSet('fake_key','not-exists')); // boolean false
12、STRLEN
Redis Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
语法:
redis 127.0.0.1:6379> STRLEN KEY_NAME
返回值:字符串值的长度。 当 key 不存在时,返回 0。
可用版本: >= 2.2.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 值存在 $redis -> set('favorite_fruit','cherry'); var_dump($redis -> strlen('favorite_fruit')); // int 6// This second case: key 值不存在 $redis -> del('fake_key'); var_dump($redis -> strlen('fake_key')); // int 0
13、INCR
Redis Incr 命令将 key 中储存的数字值增一。
(1)如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
(2)如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
(3)本操作的值限制在 64 位(bit)有符号数字表示之内。
语法:
redis 127.0.0.1:6379> INCR KEY_NAME
返回值:执行 INCR 命令之后 key 的值。
可用版本:>= 1.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 值存在且为数字 $redis -> set('number',10); var_dump($redis -> incr('number')); // int 11 var_dump($redis -> get('number')); // string '11' , 其值在 redis 中是以字符串的形式保存的// This second case: key 值不存在 $redis -> del('fake_key'); var_dump($redis -> incr('fake_key')); // int 1// This third case: key 值存但不为数字 $redis -> set('favorite_fruit','cherry'); var_dump($redis -> incr('favorite_fruit')); // boolean false// This fourth case: key 值存但为其它的类型 $redis -> lPush('job',20); var_dump($redis -> incr('job')); // boolean false
14、INCRBY
Redis Incrby 命令将 key 中储存的数字加上指定的增量值。
(1)如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
(2)如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
(3)本操作的值限制在 64 位(bit)有符号数字表示之内。
语法:
redis 127.0.0.1:6379> INCRBY KEY_NAME INCR_AMOUNT
返回值:加上指定的增量值之后, key 的值。
可用版本:>= 1.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 值存在且为数字 $redis -> set('number',10); var_dump($redis -> incrBy('number',5)); // int 15 var_dump($redis -> get('number')); // string '15' , 其值在 redis 中是以字符串的形式保存的// This second case: key 值不存在 $redis -> del('fake_key'); var_dump($redis -> incrBy('fake_key','5')); // int 5// This third case: key 值存但不为数字 $redis -> set('favorite_fruit','cherry'); var_dump($redis -> incrBy('favorite_fruit',5)); // boolean false// This fourth case: key 值存但为其它的类型 $redis -> lPush('job',20); var_dump($redis -> incrBy('job',5)); // boolean false
15、INCRBYFLOAT
Redis Incrbyfloat 命令为 key 中所储存的值加上指定的浮点数增量值。
语法:
redis 127.0.0.1:6379> INCRBYFLOAT KEY_NAME INCR_AMOUNT
返回值:执行命令之后 key 的值。
可用版本:>= 2.6.0
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 值存在且为数字 $redis -> set('number',10.2); var_dump($redis -> incrByFloat('number',0.3)); // float 10.5 var_dump($redis -> get('number')); // string '10.5' , 其值在 redis 中是以字符串的形式保存的// This second case: key 值不存在 $redis -> del('fake_key'); var_dump($redis -> incrByFloat('fake_key',0.3)); // float 0.3// This third case: key 值存但不为数字 $redis -> set('favorite_fruit','cherry'); var_dump($redis -> incrByFloat('favorite_fruit',0.3)); // boolean false// This fourth case: key 值存但为其它的类型 $redis -> lPush('job',20.2); var_dump($redis -> decrBy('job',0.3)); // boolean false
16、DECR
Redis Decr 命令将 key 中储存的数字值减一。
(1)如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
(2)如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
(3)本操作的值限制在 64 位(bit)有符号数字表示之内。
语法:
redis 127.0.0.1:6379> DECR KEY_NAME
返回值:执行命令之后 key 的值。。
可用版本:>= 1.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 值存在且为数字 $redis -> set('number',10); var_dump($redis -> decr('number')); // int 9 var_dump($redis -> get('number')); // string '9' , 其值在 redis 中是以字符串的形式保存的// This second case: key 值不存在 $redis -> del('fake_key'); var_dump($redis -> decr('fake_key')); // int -1// This third case: key 值存但不为数字 $redis -> set('favorite_fruit','cherry'); var_dump($redis -> decr('favorite_fruit')); // boolean false// This fourth case: key 值存但为其它的类型 $redis -> lPush('job',20); var_dump($redis -> decr('job')); // boolean false
17、DECRBY
Redis Decrby 命令将 key 所储存的值减去指定的减量值。
(1)如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
(2)如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
(3)本操作的值限制在 64 位(bit)有符号数字表示之内。
语法:
redis 127.0.0.1:6379> DECRBY KEY_NAME DECREMENT_AMOUNT
返回值:减去指定减量值之后, key 的值。
可用版本:>= 1.0.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();// This first case: key 值存在且为数字 $redis -> set('number',10); var_dump($redis -> decrBy('number',5)); // int 5 var_dump($redis -> get('number')); // string '5' , 其值在 redis 中是以字符串的形式保存的// This second case: key 值不存在 $redis -> del('fake_key'); var_dump($redis -> decrBy('fake_key',5)); // int -5// This third case: key 值存但不为数字 $redis -> set('favorite_fruit','cherry'); var_dump($redis -> decrBy('favorite_fruit',5)); // boolean false// This fourth case: key 值存但为其它的类型 $redis -> lPush('job',20); var_dump($redis -> decrBy('job',5)); // boolean false
18、SETBIT
Redis Setbit 命令用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
(1)位的设置或清除取决于value参数,可以是0也可以是1。
(2)当key不存在时,自动生成一个新的字符串值。
(3)字符串会增长(grown)以确保它可以将value保存在指定的偏移量上。当字符串值增长时,空白位置以0填充。
(4)offset参数必须大于或等于0,小于2^32(bit映射被限制在512MB内)。
语法:
redis 127.0.0.1:6379> Setbit KEY_NAME OFFSET
返回值:指定偏移量原来储存的位。
可用版本:>= 2.2.0
时间复杂度:O(1)
具体实例:
<?php $redis = new redis(); $redis -> connect('127.0.0.1',6379); $redis -> flushAll();$bit = 67; echo decbin($bit); // 1000011 , 转为二进制数 var_dump($redis ->setBit('bit_val',0,0)); // int 0 ,原来的空位都为 0 var_dump($redis ->setBit('bit_val',1,1)); // int 0 var_dump($redis ->setBit('bit_val',2,0)); // int 0 var_dump($redis ->setBit('bit_val',3,0)); // int 0 var_dump($redis ->setBit('bit_val',4,0)); // int 0 var_dump($redis ->setBit('bit_val',5,0)); // int 0 var_dump($redis ->setBit('bit_val',6,1)); // int 0 var_dump($redis ->setBit('bit_val',7,1)); // int 0var_dump($redis -> get('bit_val')); // string 大写字母 'C',其 ASCII 值为67 ,二进制为 0100 0011 var_dump($redis ->getBit('bit_val','6')); // int 1 var_dump($redis ->getBit('bit_val','8')); // int 0 , offset 比字符串的长度大,返回0 var_dump($redis ->getBit('bit_not_exist','1')); // int 0 , key 不存在,返回0var_dump($redis ->setBit('bit_val',5,1)); // int 0 ,将原来的第 5 位改为 1 var_dump($redis ->setBit('bit_val',6,0)); // int 1 ,由于第 6 位被设置过为 1 ,现在返回原来位的值 1 ,但是第 6 位现在的值已经为 0 了var_dump($redis -> get('bit_val')); // string 大写字母 'E',其 ASCII 值为69 ,二进制为 0100 0101
19、GETBIT
Redis Getbit 命令用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
语法:
redis 127.0.0.1:6379> GETBIT KEY_NAME OFFSET
返回值:字符串值指定偏移量上的位(bit)。当偏移量 OFFSET 比字符串值的长度大,或者 key 不存在时,返回 0。
可用版本:>= 2.2.0
时间复杂度:O(1)
具体实例:
参见setBit
转载于:https://www.cnblogs.com/tiger-lzl/p/9994802.html
redis在php中的应用(string篇)相关推荐
- Redis数据类型及编码格式——介绍及String篇
Redis核心对象 reids中定义了一个数据结构用来统一表示各种数据类型,它叫做redisObject typedef struct redisObject {unsigned type:4; // ...
- php redis key,redis 在 php 中的应用(key篇)
KEY(键) Redis DEL 命令用于删除已存在的键.不存在的 key 会被忽略. $redis = new redis(); $redis->connect('127.0.0.1',637 ...
- redis hashmap过期_看完这篇再也不怕 Redis 面试了
0.前言 Redis是跨语言的共同技术点,无论是Java还是C++都会问到,所以是个高频面试点. 笔者是2017年才开始接触Redis的,期间自己搭过单机版和集群版,不过现在 大一些的 公司都完全是运 ...
- redis在php中的使用介绍
redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...
- redis在PHP中的基本使用案例
服务端安装 Redis的官方下载站是http://redis.io/download,可以去上面下载最新的安装程序下来,我写此文章时的的稳定版本是2.6.11. 步骤一: 下载Redis 进入软件安装 ...
- Redis在C#中的使用及Redis的封装
Redis是一款开源的.高性能的键-值存储(key-value store).它常被称作是一款数据结构服务器(data structure server).Redis的键值可以包括字符串(string ...
- 通过Java字节码发现有趣的内幕之String篇(上)(转)
原文出处: jaffa 很多时候我们在编写Java代码时,判断和猜测代码问题时主要是通过运行结果来得到答案,本博文主要是想通过Java字节码的方式来进一步求证我们已知的东西.这里没有对Java字节码知 ...
- Redis【入门】就这一篇!
Redis 概述 在我们日常的Java Web开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一 ...
- redis在php中的用法,使用PHP-redis操作Redis
PHP连接Redis 我们一般使用connect连接Redis,connect方法为短连接,提供了主机.端口.连接超时等参数设置,如: $redis->connect('127.0.0.1', ...
最新文章
- 在Ubuntu11.10中安装配置OpenCV2.3.1和CodeBlocks
- 漫画:为什么计算机用补码存储数据?
- python是高级动态语言_Python动态语言之魅力揭秘
- struts2框架从数据库批量取得数据集并在前台页面循环显示
- POJO和javabean的异同
- 【VS开发】Wix 安装教程
- python内存管理说法错误_python面试题总结1-内存管理机制
- JAVA基础加强笔记
- [mybatis]Configuration XML_mappers
- james-2.3.2中的配置
- oracle连续状态相同,数据库共有三种状态:quiesce、resrict、suspend
- iPhone清理喇叭灰尘_厉害了,iPhone 专用的网购商品历史最低价查询工具
- 单例设计模式 序列化破坏单例模式原理解析及解决方案?
- Python读写文件说明
- mysql 以周为单位记录数据_mysql 按月/按周汇总统计函数 DATE_FORMAT() 函数
- bp神经网络matlab代码_基于Matlab的BP神经网络识别26个英文字母
- Mac资讯:macos big sur正式版推送 macOS 11 Big Sur有哪些不兼容的软件?
- 微带天线单元建模与辐射
- 用HTML标签设置字体颜色,html中li标签设置字体颜色
- c语言小球消砖块的游戏,求大神帮忙看看这个弹弹球消砖块的游戏代码,为什么speed只能15...
热门文章
- python 编写简单网页服务器
- 深度学习在计算机视觉点云中的发展与未来
- 笔记 | 《机器学习》手推笔记更新集成学习(Boosting和随机森林)
- CVPR2019 Oral!伯克利、麻省理工GAN图像合成最新成果(附开源代码)!
- 《TensorFlow:实战Google深度学习框架》——5.3 TensorFlow中的变量初始化函数
- 使用强大的 Mockito 来测试你的代码
- android listview 向上自动滚动效果,Android通过代码控制ListView上下滚动的方法
- es-head 删除INDEX 创建mapping
- springmvc流程_基于Spring MVC框架的Http流程分析
- 有没有比python更简单的语言排名_5月语言排行榜:R跌出前二十 Python紧咬C++