• 一、Redis基本介绍

  • (1)Redis介绍

  Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询,` bitmaps,hyperloglogs 和 地理空间(geospatial) 索引半径查询.Redis 内置了 复制(replication), LUA脚本(Lua scripting), LRU驱动事件(LRU eviction), 事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过Redis哨兵(Sentinel) 和自动分区(Cluster)提供高可用性(high availability)。

    可以对这些类型执行 原子操作 , 列如: 字符串(strings)的append 命令; 散列(hashes)的hincrby命令; 列表(lists)的lpush命令; 集合(sets)计算交集sinter命令, 计算并集union命令 和 计算差集sdiff命令; 或者 在有序集合(sorted sets)里面获取成员的最高排名zrangebyscore命令。

    为了实现其卓越的性能, Redis采用运行在 内存中的数据集工作方式. 根据使用情况, 可以每隔一定时间将 数据集导出到磁盘 , 或者 追加到命令日志中. 也可以关闭持久化功能,将Redis作为一个高效的网络的缓存数据功能使用.

    Redis 同样支持 主从复制(能自动重连和网络断开时自动重新同步),并且第一次同步是快速的非阻塞式的同步.
  其他功能包括:
(1)事务(Transactions)
(2)订阅分发(Pub/Sub)
(3)LUA脚本(Lua scripting)
(4)过期自动删除key
(5)内存回收
(6)自动故障转移

  • (2)Redis特点

1)支持内存缓存,这个功能相当于memcached

2)支持持久化存储,这个功能相当于memcachedb,ttserver

3)数据库类型更丰富。比其他key-value库功能更强

4)支持主从集群、分布式

5)支持队列等特殊功能

  • (3)Redis和Memecache的区别

1.存储方式: 
memecache 把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小, Redis有部份存在硬盘上,这样能保证数据的持久性,支持数据的持久化。

2.数据支持类型: 
redis在数据支持上要比memecache多的多。

3.使用底层模型不同 
新版本的redis直接自己构建了VM 机制,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。

总结:对于两者的选择还是要看具体的应用场景,如果需要缓存的数据只是key-value这样简单的结构时,我在项目里还是采用memcache,它也足够的稳定可靠。如果涉及到存储,排序等一系列复杂的操作时,毫无疑问选择redis。

  • 二、Redis部署

redis下载地址:http://www.redis.cn/download.html

  • 1、安装–>下载,解压,编译

(1)下载、解压、编译
[root@redis ~]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz
[root@redis ~]# tar xzf redis-4.0.9.tar.gz -C /usr/local/
[root@redis redis-4.0.9]# cd /usr/local/redis-4.0.9
[root@redis redis-4.0.9]# make
[root@redis redis-4.0.9]# make install(2)创建软链接
[root@redis redis-4.0.9]# ln -sv /usr/local/redis-4.0.9 /usr/local/redis
"/usr/local/redis" -> "/usr/local/redis-4.0.9"
[root@redis redis-4.0.9]# ll /usr/local/redis*
lrwxrwxrwx 1 root root   22 5月  18 10:53 /usr/local/redis -> /usr/local/redis-4.0.9(3)修改redis配置文件redis.conf
[root@redis ~]# vim /usr/local/redis/redis.conf
bind 127.0.0.1   #监听的ip地址
port 6379        #端口
daemonize yes    #开启后台运行模式
pidfile /var/run/redis_6379.pid   #pid路径
logfile "/var/log/redis.log"      #日志路径
dir /data/redis_data              #数据保存路径

  • 2、启动redis

(1)编写redis启动脚本
[root@redis ~]# vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/src/redis-server /usr/local/redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target(2)启动redis
[root@redis ~]# systemctl daemon-reload
[root@redis ~]# systemctl start redis
[root@redis ~]# ps -ef |grep redis
root     31615     1  0 11:48 ?        00:00:00 /usr/local/redis/src/redis-server 127.0.0.1:6379
root     31620 31352  0 11:48 pts/1    00:00:00 grep --color=auto redis
[root@redis ~]# netstat -tulnp |grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      31615/redis-server
[root@redis ~]# redis-cli
127.0.0.1:6379> KEYS *
1) "k1"

  • 3、redis常见操作
keys *    //取出所有key
keys my* //模糊匹配
exists name  //有name键 返回1 ,否则返回0;
del  key1 // 删除一个key    //成功返回1 ,否则返回0;
EXPIRE key1 100  //设置key1 100s后过期
ttl key // 查看键 还有多长时间过期,单位是s,当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,返回 key 的剩余生存时间。
select  0  //代表选择当前数据库,默认进入0 数据库
move age 1  // 把age 移动到1 数据库
persist key1   //取消key1的过期时间
randomkey //随机返回一个key
rename oldname newname //重命名key
type key1 //返回键的类型
dbsize  //返回当前数据库中key的数目
info  //返回redis数据库状态信息
flushdb //清空当前数据库中所有的键
flushall    //清空所有数据库中的所有的key
bgsave //保存数据到 rdb文件中,在后台运行
save //作用同上,但是在前台运行
config get * //获取所有配置参数
config get dir  //获取配置参数
config set dir  //更改配置参数
数据恢复: 首先定义或者确定dir目录和dbfilename,然后把备份的rdb文件放到dir目录下面,重启redis服务即可恢复数据

  • 4、redis.conf详解
[root@redis ~]# grep "^[a-Z]" /usr/local/redis/redis.conf
bind 127.0.0.1          #绑定监听的ip地址,可以有多个监听地址,如外网需要连接,设置0.0.0.0 空格分隔
protected-mode yes      #是否开启保护模式,当redis.conf中没有定义bind的ip时,也就是说redis将会绑定全网IP, 并且也没有设置访问密码,这两个条件满足时,当远程的机器访问redis时,就会被限制了。建议开启。
port 6379               #监听端口
tcp-backlog 511         #关于backlog的理解,需要先搞清楚TCP三次握手。这个tcp-backlog定义了一个队列的长度。这个队列指的是, TCP三次握手中最后一次握手完成后的那个状态的连接,该参数设定的值不能大于内核的somaxconn的值,要想设置的非常高,那么首先要将内核参数somaxconn的值提升。 somaxconn,定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128. 限制了每个端口接收新tcp连接侦听队列的大小。对于一个经常处理新连接的高负载 web服务环境来说,默认的128太小了。 大多数环境这个值建议增加到2048或者更多。调整内核参数: echo "net.core.somaxconn = 2048" >> /etc/sysctl.conf; sysctl -p
timeout 0               # 当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
tcp-keepalive 300       # TCP长连接保持时长。单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求, 以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。所以关闭一个连接最长需要120秒的时间。如果设置为0,则不会进行保活检测。
daemonize yes           #Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程#启用守护进程后,Redis会把pid写到一个pidfile中,在/var/run/redis_6379.pid
supervised no       #是否通过upstart或systemd管理守护进程。默认no没有服务监控,其它选项有upstart, systemd, auto
pidfile /var/run/redis_6379.pid     #pid文件路径
loglevel notice     # 指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning
logfile "/var/log/redis.log"    #指定日志文件路径
databases 16        # 设置数据库的数量,默认数据库为0,可以使用select <dbid>命令在连接上指定数据库id
always-show-logo yes   #redis启动时,会打印ASCII艺术logo

################################ SNAPSHOTTING(快照备份)  #################################
# 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
#   满足以下条件将会同步数据:
#   900秒(15分钟)内有1个更改
#   300秒(5分钟)内有10个更改
#   60秒内有10000个更改
#   Note: 可以把所有“save”行注释掉,这样就取消同步操作了
save 900 1
save 300 10
save 60 10000stop-writes-on-bgsave-error yes   #当save过程中出现失败的情况时,或者有某些错误时,总之导致了内存中的数据和磁盘中的数据不一致了。该参数定义此时是否继续进行save的操作。
rdbcompression yes  # 指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩# 如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
rdbchecksum yes     # 当save完成后,是否使用CRC64算法校验rdb文件。
dbfilename dump.rdb # 指定本地数据库文件名,默认值为dump.rdb
dir /data/redis_data    #数据库(dump.rdb)文件存放目录,注意,这里只能指定一个目录,不能指定文件名################################# REPLICATION(主从复制) #################################
# 主从复制。使用slaveof从 Redis服务器复制一个Redis实例。注意,该配置仅限于当前slave有效
# 设置当本机为slav服务时,设置master服务的ip地址及端口,在Redis启动时,它会自动从master进行数据同步
# 当master服务设置了密码保护时,slave服务连接master的密码slaveof <masterip> <masterport> #主从复制使用,用于本机redis作为slave去连接主redis,配置主redis的ip和端口
masterauth <master-password>    #当master设置密码认证,slave用此选项指定master认证密码
slave-serve-stale-data yes      #当slave与master之间的连接断开或slave正在与master进行数据同步时,如果有slave请求,当设置为yes时,slave仍然响应请求,此时可能有问题,如果设置no时,slave会返回"SYNC with master in progress"错误信息。但INFO和SLAVEOF命令除外。
slave-read-only yes             #在从上配置,开启从只读模式,无法在从上进行写入操作
repl-diskless-sync no           #是否开启主从复制的磁盘同步,默认为no。定义主从同步数据的策略,它有两种策略,一个是磁盘形式,一个是socket(就是这个diskless)形式。 磁盘形式,就是先将数据写到rdb文件里,然后传输rdb文件到从上。 socket形式,就是直接通过网络传输变更的数据到从上的rdb文件里。 repl-diskless-sync no,表示使用磁盘的形式。
repl-diskless-sync-delay 5      #磁盘同步的时延。如果使用了通过socket的形式传输数据,则需要考虑一个主下面有多个从的情况,因为一旦基于Diskless的复制传送开始, 主就无法顾及新的从的到来。所以,就有了这个延迟的设置,比如延迟5秒,这样在主从传输数据之前,所有的从都被识别了, 这样主就可以多开几个线程来同时给所有的从进行数据传输了。
repl-disable-tcp-nodelay no     #是否开启tcp时延。是否关闭tcp_nodelay功能。 关于tcp_nodelay有个nagle算法,假如需要频繁的发送一些小包数据,比如说1个字节,以IPv4为例的话, 则每个包都要附带40字节的头,也就是说,总计41个字节的数据里,其中只有1个字节是我们需要的数据。为了解决这个问题,出现了Nagle算法。 它规定:如果包的大小满足MSS,那么可以立即发送,否则数据会被放到缓冲区,等到已经发送的包被确认了之后才能继续发送。 通过这样的规定,可以降低网络里小包的数量,从而提升网络性能。该参数设置为no,即使用tcp_nodelay,数据传输到salve的延迟将会减少但要使用更多的带宽。 反之,不使用tcp_nodelay,这样Redis主将使用更少的TCP包和带宽来向slaves发送数据。 但是这将使数据传输到slave上有延迟,Linux内核的默认配置会达到40毫秒。
repl-backlog-size 1mb  #首先解释一下,这里的backlog是主上的一个内存缓冲区,它存储的数据是当主和从断开连接时,主无法将数据传给从了,这时候主先将更新的数据 暂时存放在缓存去里。如果主从再次连接时,就不需要重新传输所有数据,而是只需要传输缓冲区的这一部分即可。这个参数用来定义该缓冲区的大小。

repl-backlog-ttl 3600  #如果主Redis等了一段时间之后,还是无法连接到从Redis,那么缓冲队列中的数据将被清理掉。我们可以设置主Redis要等待的时间长度。 如果设置为0,则表示永远不清理。默认是1个小时。

replica-priority 100  #我们可以给众多的从Redis设置优先级,在主Redis持续工作不正常的情况,优先级高的从Redis将会升级为主Redis。而编号越小,优先级越高。 比如一个主Redis有三个从Redis,优先级编号分别为10、100、25,那么编号为10的从Redis将会被首先选中升级为主Redis。 当优先级被设置为0时,这个从Redis将永远也不会被选中。默认的优先级为100。

min-replicas-to-write 3 /min-replicas-max-lag 10  #假如主Redis发现有超过M个从Redis的连接延时大于N秒,那么主Redis就停止接受外来的写请求。这是因为从Redis一般会每秒钟都向主Redis发出PING, 而主Redis会记录每一个从Redis最近一次发来PING的时间点,所以主Redis能够了解每一个从Redis的运行情况。
min-replicas-to-write 3 /min-replicas-max-lag 10  #表示,假如有大于等于3个从Redis的连接延迟大于10秒,那么主Redis就不再接受外部的写请求。 上述两个配置中有一个被置为0,则这个特性将被关闭。默认情况下min-slaves-to-write为0,而min-slaves-max-lag为10。
slave-priority 100    # 从的权重设置

############################ 安全配置 #####################################
requirepass foobared  # 设置Redis连接密码#如果配置了连接密码,客户端在连接Redis时需要通过auth <password>命令提供密码,默认关闭

rename-command CONFIG ""   #限制CONFIG命令使用,当redis被入侵时,为了避免CONFIG命令的危险性,可以对CONFIG命令进行配置不允许使用CONFIG命令。
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no     #是否开启从上的懒刷新,默认关闭############################## LIMIT(限制) ###############################maxclients 128      #允许设置客户端最大连接数,0为不限制
maxmemory <bytes>   #内存清理策略,如果达到此值,将采取以下动作:# volatile-lru :默认策略,只对设置过期时间的key进行LRU算法删除# allkeys-lru :删除不经常使用的key# volatile-random :随机删除即将过期的key# allkeys-random :随机删除一个key# volatile-ttl :删除即将过期的key# noeviction :不过期,写操作返回报错
maxmemory-policy volatile-lru   #如果达到maxmemory值,采用此策略
maxmemory-samples 3             #默认随机选择3个key,从中淘汰最不经常用的############################## APPEND ONLY MODE ###############################appendonly no   #yes表示开启aof持久化。指定是否在每次更新操作后进行日志记录,#Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。# 因为redis本身同步数据文件是按上面save条件来同步的,# 所以有的数据会在一段时间内只存在于内存中。默认为no
appendfilename "appendonly.aof"     # 指定更新日志文件名,默认为appendonly.aof
appendfsync everysec        # 指定更新日志条件,共有3个可选值:# no:不调用fsync()函数,而是让操作系统自行决定sync的时间,这种模式下,redis的性能会最快。# always:在每次写请求后都调用fsync()函数,这种模式下,redis相对会较慢,但是数据是最安全的。# everysec:每秒钟调用一次fsync(),这是性能和安全的折中选择。默认情况下为该模式
no-appendfsync-on-rewrite no  #当fsync方式设置为always或everysec时,如果后台持久化进程需要执行一个很大的磁盘IO操作,那么Redis可能会在fsync()调用时卡住。 目前尚未修复这个问题,这是因为即使我们在另一个新的线程中去执行fsync(),也会阻塞住同步写调用。为了缓解这个问题,我们可以使用该配置项,这样的话,当BGSAVE或BGWRITEAOF运行时,fsync()在主进程中的调用会被阻止。 这意味着当另一路进程正在对AOF文件进行重构时,Redis的持久化功能就失效了,就好像我们设置了"appendsync no"一样。 如果Redis有时延问题,那么可以将该选项设置为yes。否则请保持no,因为这是保证数据完整性的最安全的选择。
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb  #我们允许Redis自动重写aof。当aof增长到一定规模时,Redis会隐式调用BGREWRITEAOF来重写log文件,以缩减文件体积。Redis是这样工作的:Redis会记录上次重写时的aof大小。假如Redis自启动至今还没有进行过重写,那么启动时aof文件的大小会被作为基准值。 这个基准值会和当前的aof大小进行比较。如果当前aof大小超出所设置的增长比例,则会触发重写。另外还需要设置一个最小大小,是为了防止在aof很小时就触发重写。如果设置auto-aof-rewrite-percentage为0,则会关闭此重写功能。
aof-load-truncated yes  #由于某种原因(aof文件损坏)有可能导致利用aof文件恢复redis数据时发生异常,该参数决定redis服务接下来的行为。如果设置为yes,则aof文件会被加载(但数据一定不全),并且会记录日志说明情况。如果设置为no,则redis服务根本就启动不起来。
aof-use-rdb-preamble yes   #为了让用户能够同时拥有RDB和AOF两种持久化的优点, 从Redis 4.0版本开始,就推出了一个能够“鱼和熊掌兼得”的持久化方案 —— RDB-AOF 混合持久化: 这种持久化能够通过 AOF 重写操作创建出一个同时包含RDB数据和AOF数据的AOF文件, 其中RDB数据位于AOF文件的开头, 它们储存了服务器开始执行重写操作时的数据库状态:至于那些在重写操作执行之后执行的Redis命令,则会继续以AOF格式追加到AOF文件的末尾,也即是RDB数据之后。
lua-time-limit 5000
slowlog-log-slower-than 10000   #设置慢日志记录条件,超过10000微秒记录
slowlog-max-len 128   #慢日志最大长度
latency-monitor-threshold 0
notify-keyspace-events ""############################## 虚拟内存 ##############################
vm-enabled no      #是否启用虚拟内存机制,虚拟内存机将数据分页存放,把很少访问的页放到swap上,内存占用多,最好关闭虚拟内存
vm-swap-file /var/lib/redis/redis.swap   #虚拟内存文件位置
vm-max-memory 0    #redis使用的最大内存上限,保护redis不会因过多使用物理内存影响性能
vm-page-size 32    #每个页面的大小为32字节
vm-pages 134217728  #设置swap文件中页面数量
vm-max-threads 4    #访问swap文件的线程数############################## 高级配置 ##############################
hash-max-ziplist-entries 512    #哈希表中元素(条目)总个数不超过设定数量时,采用线性紧凑格式存储来节省空间
hash-max-ziplist-value 64       #哈希表中每个value的长度不超过多少字节时,采用线性紧凑格式存储来节省空间
list-max-ziplist-entries 512    #list数据类型多少节点以下会采用去指针的紧凑存储格式
list-max-ziplist-value 64       #list数据类型节点值大小小于多少字节会采用紧凑存储格式
list-compress-depth 0
set-max-intset-entries 512       #set数据类型内部数据如果全部是数值型,且包含多少节点以下会采用紧凑格式存储
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes     # 指定是否激活重置哈希,默认为开启
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

  •  5、PHP中使用redis

在php中使用redis,必须安装php的redis扩展模块,pecl方法安装如下:

/usr/local/php-fpm/bin/pecl install redisvi  /usr/local/php/etc/php.ini  //增加extension = redis.so

源码安装redis扩展如下:

wget https://github.com/phpredis/phpredis/archive/4.2.0.tar.gz
mv 4.2.0.tar.gz  php-redis.tar.gz
tar zxvf php-redis.tar.gz
cd phpredis-4.2.0/
/usr/local/php-fpm/bin/phpize
./configure --with-php-config=/usr/local/php-fpm/bin/php-config
make && make install
vi  /usr/local/php/etc/php.ini  //增加extension = redis.so

php中使用redis进行session保存:

root@localhost ~]# vim /etc/php.ini
[Session]    #在Session模块下增加
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"[root@localhost ~]# php-fpm -t
[16-Apr-2019 16:15:16] NOTICE: configuration file /etc/php-fpm.conf test is successful[root@localhost ~]# systemctl reload php-fpm

创建测试文件,进行测试session保存:

[root@localhost ~]# wget http://study.lishiming.net/.mem_se.txt
[root@localhost ~]# mv .mem_se.txt session.php[root@localhost ~]# php session.php
1555402526<br><br>1555402526<br><br>n0r96n9fdkdctv2jcossvog4vq [root@localhost ~]# redis-cli
127.0.0.1:6379> KEYS *
1) "PHPREDIS_SESSION:n0r96n9fdkdctv2jcossvog4vq"
2) "ke1"127.0.0.1:6379> GET PHPREDIS_SESSION:n0r96n9fdkdctv2jcossvog4vq
"TEST|i:1555402526;TEST3|i:1555402526;"

转载于:https://www.cnblogs.com/linuxk/p/9474928.html

Redis学习之路(二)之Redis入门基础相关推荐

  1. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. 我们就 ...

  2. Redis学习之路(一)--下载安装redis

    redis学习之路--下载安装redis windows安装redis 1.下载redis 2.安装 3.查看是否安装成功 windows安装redis 1.下载redis 网址:https://gi ...

  3. Redis学习笔记(二)SpringBoot整合

    Redis学习笔记(二) SpringBoot整合 测试 导入依赖 查看底层 配置连接 测试连接 自定义`RedisTemplate` 在开发中,一般都是以json来传输对象: 所以实际开发中所有对象 ...

  4. Redis学习笔记(八)redis之lua脚本学习

    redis系列文章目录 使用spring-data-redis实现incr自增 Redis 利用Hash存储节约内存 Redis学习笔记(九)redis实现时时直播列表缓存,支持分页[热点数据存储] ...

  5. HiveQL学习笔记(二):Hive基础语法与常用函数

    本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...

  6. Redis学习笔记之二 :在Java项目中使用Redis

    成功配置redis之后,便来学习使用redis.首先了解下redis的数据类型. Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set( ...

  7. wamp集成环境php扩展,redis学习之路:wampserver集成环境安装php redis拓展

    1.查看php版本信息 用phpinfo()函数查看版本信息.为了第二步提供下载redis拓展包提供信息,以下载适应本集成环境的PHP相匹配的redis信息. 2.下载php redis拓展包 根据第 ...

  8. 【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手

    目录 类型 String 字符串 List 列表 Set 集合 Sorted Set /ZSet 有序集合 Hash 哈希表 GEO 地理空间 HyperLogLog 基数统计 Bitmap 位图 B ...

  9. Redis学习(含 Springboot 整合 Redis)

    Redis NoSQL (not only sql) 在现代的计算系统上每天网络上都会产生庞大的数据量. 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理. 1970年 E.F.Codd ...

  10. Redis进阶实践之二十 Redis的配置文件使用详解

    一.引言 写完上一篇有关redis使用lua脚本的文章,就有意结束Redis这个系列的文章了,当然了,这里的结束只是我这个系列的结束,但是要学的东西还有很多.但是,好多天过去了,总是感觉好像还缺点什么 ...

最新文章

  1. 8种优秀预训练模型大盘点,NLP应用so easy!
  2. jakarta_MicroProfile在Jakarta EE时代的作用
  3. 快速生成一个二维矩阵Python
  4. 深入浅出之正则表达式(一)
  5. STM32 软件模拟 IIC 代码,标准库、HAL库可用
  6. 【AtCoder】AGC009
  7. orm2 中文文档 3.2 模型验证器
  8. Linux文件下载和上传工具lrzsz
  9. 杭电3790最短路径问题
  10. 团队作业——微博网站小调查
  11. 《统计学习方法》——决策树
  12. 蚂蚁金服服务器系统,蚂蚁金服轻量级监控分析系统 SOFALookout 服务端开源
  13. Cadence Allegro编辑元件属性图文教程及视频演示
  14. 【基本办公软件】万彩办公大师教程丨二维条码制作工具
  15. 刚刚,5000000 里程碑达成!
  16. 赛车!赛车!Wipe out everything!
  17. deepin设置快捷键
  18. 恋爱话术表白头像漫画制作微信小程序
  19. Android 获取微信ua,微信小程序实现获取用户高清头像
  20. 进行拨测的主要目的都有哪些?

热门文章

  1. keep怎么生成运动轨迹_空间新物种 !| 垂直运动路径与商业综合体的整合与植入...
  2. HCIE Security 防火墙NAT技术 备考笔记(幕布)
  3. 单臂路由VLAN通信
  4. 关于BMZCTF中 shell_exec的解法详解
  5. nyoj--82--一笔画问题
  6. HDOJ--2094--产生冠军
  7. 第三篇:C++ 中的几种初始化
  8. SQLServer · 特性分析 · SQL Server 2012的分析函数未必都理解透了(2)
  9. 手把手教你搭建LyncServer2013之部署边缘服务器(七)
  10. mysql主从数据库服务器搭建