有没有做羞羞事的网站,免费h5页面制作软件app,wordpress扁平化登录页源码,金牛网站建设1#xff0c;Redis 简介 Redis 是完全开源免费的#xff0c;遵守BSD协议#xff0c;是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点#xff1a; Redis支持数据的持久化#xff0c;可以将内存中的数据保持在磁盘中#xff0c;重启的时… 1Redis 简介 Redis 是完全开源免费的遵守BSD协议是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点 Redis支持数据的持久化可以将内存中的数据保持在磁盘中重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据同时还提供listsetzsethash等数据结构的存储。 Redis支持数据的备份即master-slave模式的数据备份。 2Redis 安装 Window 下安装 下载地址https://github.com/dmajkic/redis/downloads。 下载到的Redis支持32bit和64bit。根据自己实际情况选择将64bit的内容cp到自定义盘符安装目录取名redis。 如 C:\reids 打开一个cmd窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.conf 。如果下载的是Redis-x64-3.2.100版本是运行 redis-server.exe redis.windows.conf 如果想方便的话可以把redis的路径加到系统的环境变量里这样就省得再输路径了后面的那个redis.conf可以省略如果省略会启用默认的。输入之后。 这时候另启一个cmd窗口原来的不要关闭不然就无法访问服务端了。 切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。 设置键值对 set myKey abc 取出键值对 get myKey 还可以直接双击客户端和服务端的.exe文件如下 Linux 下安装 下载地址http://redis.io/download下载最新文档版本。 本教程使用的最新文档版本为 2.8.17下载并安装 $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ makemake完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli 下面启动redis服务. $ ./redis-server注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。 $ ./redis-server redis.confredis.conf是一个默认的配置文件。我们可以根据需要使用自己的配置文件。 启动redis服务进程后就可以使用测试客户端程序redis-cli和redis服务交互了。 比如 $ ./redis-cli
redis set foo bar
OK
redis get foo
barUbuntu 下安装 在 Ubuntu 系统安装 Redi 可以使用以下命令: $sudo apt-get update
$sudo apt-get install redis-server启动 Redis $redis-server查看 redis 是否启动 $redis-cli以上命令将打开以下终端 redis 127.0.0.1:6379127.0.0.1 是本机 IP 6379 是 redis 服务端口。现在我们输入 PING 命令。 redis 127.0.0.1:6379 ping
PONG以上说明我们已经成功安装了redis。 3Redis 配置 Redis 的配置文件位于 Redis 安装目录下文件名为 redis.conf。 你可以通过 CONFIG 命令查看或设置配置项。 语法 Redis CONFIG 命令格式如下 redis 127.0.0.1:6379 CONFIG GET CONFIG_SETTING_NAME实例 redis 127.0.0.1:6379 CONFIG GET loglevel1) loglevel
2) notice使用 * 号获取所有配置项 实例 redis 127.0.0.1:6379 CONFIG GET *1) dbfilename2) dump.rdb3) requirepass4) 5) masterauth6) 7) unixsocket8) 9) logfile10) 11) pidfile12) /var/run/redis.pid13) maxmemory14) 015) maxmemory-samples16) 317) timeout18) 019) tcp-keepalive20) 021) auto-aof-rewrite-percentage22) 10023) auto-aof-rewrite-min-size24) 6710886425) hash-max-ziplist-entries26) 51227) hash-max-ziplist-value28) 6429) list-max-ziplist-entries30) 51231) list-max-ziplist-value32) 6433) set-max-intset-entries34) 51235) zset-max-ziplist-entries36) 12837) zset-max-ziplist-value38) 6439) hll-sparse-max-bytes40) 300041) lua-time-limit42) 500043) slowlog-log-slower-than44) 1000045) latency-monitor-threshold46) 047) slowlog-max-len48) 12849) port50) 637951) tcp-backlog52) 51153) databases54) 1655) repl-ping-slave-period56) 1057) repl-timeout58) 6059) repl-backlog-size60) 104857661) repl-backlog-ttl62) 360063) maxclients64) 406465) watchdog-period66) 067) slave-priority68) 10069) min-slaves-to-write70) 071) min-slaves-max-lag72) 1073) hz74) 1075) no-appendfsync-on-rewrite76) no77) slave-serve-stale-data78) yes79) slave-read-only80) yes81) stop-writes-on-bgsave-error82) yes83) daemonize84) no85) rdbcompression86) yes87) rdbchecksum88) yes89) activerehashing90) yes91) repl-disable-tcp-nodelay92) no93) aof-rewrite-incremental-fsync94) yes95) appendonly96) no97) dir98) /home/deepak/Downloads/redis-2.8.13/src99) maxmemory-policy
100) volatile-lru
101) appendfsync
102) everysec
103) save
104) 3600 1 300 100 60 10000
105) loglevel
106) notice
107) client-output-buffer-limit
108) normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60
109) unixsocketperm
110) 0
111) slaveof
112)
113) notify-keyspace-events
114)
115) bind
116) 编辑配置 你可以通过修改 redis.conf 文件或使用 CONFIG set 命令来修改配置。 语法 CONFIG SET 命令基本语法 redis 127.0.0.1:6379 CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE实例 redis 127.0.0.1:6379 CONFIG SET loglevel notice
OK
redis 127.0.0.1:6379 CONFIG GET loglevel1) loglevel
2) notice参数说明 redis.conf 配置项说明如下 1. Redis默认不是以守护进程的方式运行可以通过该配置项修改使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时Redis默认会把pid写入/var/run/redis.pid文件可以通过pidfile指定 pidfile /var/run/redis.pid 3. 指定Redis监听端口默认端口为6379作者在自己的一篇博文中解释了为什么选用6379作为默认端口因为6379在手机按键上MERZ对应的号码而MERZ取自意大利歌女Alessia Merz的名字 port 6379 4. 绑定的主机地址 bind 127.0.0.1 5.当 客户端闲置多长时间后关闭连接如果指定为0表示关闭该功能 timeout 300 6. 指定日志记录级别Redis总共支持四个级别debug、verbose、notice、warning默认为verbose loglevel verbose 7. 日志记录方式默认为标准输出如果配置Redis为守护进程方式运行而这里又配置为日志记录方式为标准输出则日志将会发送给/dev/null logfile stdout 8. 设置数据库的数量默认数据库为0可以使用SELECT dbid命令在连接上指定数据库id databases 16 9. 指定在多长时间内有多少次更新操作就将数据同步到数据文件可以多个条件配合 save seconds changes Redis默认配置文件中提供了三个条件 save 900 1 save 300 10 save 60 10000 分别表示900秒15分钟内有1个更改300秒5分钟内有10个更改以及60秒内有10000个更改。 10. 指定存储至本地数据库时是否压缩数据默认为yesRedis采用LZF压缩如果为了节省CPU时间可以关闭该选项但会导致数据库文件变的巨大 rdbcompression yes 11. 指定本地数据库文件名默认值为dump.rdb dbfilename dump.rdb 12. 指定本地数据库存放目录 dir ./ 13. 设置当本机为slav服务时设置master服务的IP地址及端口在Redis启动时它会自动从master进行数据同步 slaveof masterip masterport 14. 当master服务设置了密码保护时slav服务连接master的密码 masterauth master-password 15. 设置Redis连接密码如果配置了连接密码客户端在连接Redis时需要通过AUTH password命令提供密码默认关闭 requirepass foobared 16. 设置同一时间最大客户端连接数默认无限制Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数如果设置 maxclients 0表示不作限制。当客户端连接数到达限制时Redis会关闭新的连接并向客户端返回max number of clients reached错误信息 maxclients 128 17. 指定Redis最大内存限制Redis在启动时会把数据加载到内存中达到最大内存后Redis会先尝试清除已到期或即将到期的Key当此方法处理 后仍然到达最大内存设置将无法再进行写入操作但仍然可以进行读取操作。Redis新的vm机制会把Key存放内存Value会存放在swap区 maxmemory bytes 18. 指定是否在每次更新操作后进行日志记录Redis在默认情况下是异步的把数据写入磁盘如果不开启可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的所以有的数据会在一段时间内只存在于内存中。默认为no appendonly no 19. 指定更新日志文件名默认为appendonly.aof appendfilename appendonly.aof 20. 指定更新日志条件共有3个可选值 no表示等操作系统进行数据缓存同步到磁盘快 always表示每次更新操作后手动调用fsync()将数据写到磁盘慢安全 everysec表示每秒同步一次折衷默认值 appendfsync everysec 21. 指定是否启用虚拟内存机制默认值为no简单的介绍一下VM机制将数据分页存放由Redis将访问量较少的页即冷数据swap到磁盘上访问多的页面由磁盘自动换出到内存中在后面的文章我会仔细分析Redis的VM机制 vm-enabled no 22. 虚拟内存文件路径默认值为/tmp/redis.swap不可多个Redis实例共享 vm-swap-file /tmp/redis.swap 23. 将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据 就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0 vm-max-memory 0 24. Redis swap文件分成了很多的page一个对象可以保存在多个page上面但一个page上不能被多个对象共享vm-page-size是要根据存储的 数据大小来设定的作者建议如果存储很多小对象page大小最好设置为32或者64bytes如果存储很大大对象则可以使用更大的page如果不 确定就使用默认值 vm-page-size 32 25. 设置swap文件中的page数量由于页表一种表示页面空闲或使用的bitmap是在放在内存中的在磁盘上每8个pages将消耗1byte的内存。 vm-pages 134217728 26. 设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的可能会造成比较长时间的延迟。默认值为4 vm-max-threads 4 27. 设置在向客户端应答时是否把较小的包合并为一个包发送默认为开启 glueoutputbuf yes 28. 指定在超过一定的数量或者最大的元素超过某一临界值时采用一种特殊的哈希算法 hash-max-zipmap-entries 64 hash-max-zipmap-value 512 29. 指定是否激活重置哈希默认为开启后面在介绍Redis的哈希算法时具体介绍 activerehashing yes 30. 指定包含其它的配置文件可以在同一主机上多个Redis实例之间使用同一份配置文件而同时各个实例又拥有自己的特定配置文件 include /path/to/local.conf 4Redis 数据类型 Redis支持五种数据类型string字符串hash哈希list列表set集合及zset(sorted set有序集合)。 String字符串 string是redis最基本的类型你可以理解成与Memcached一模一样的类型一个key对应一个value。 string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型一个键最大能存储512MB。 实例 redis 127.0.0.1:6379 SET name w3cschool.cn
OK
redis 127.0.0.1:6379 GET name
w3cschool.cn在以上实例中我们使用了 Redis 的 SET 和 GET 命令。键为 name对应的值为w3cschool.cn。 注意一个键最大能存储512MB。 Hash哈希 Redis hash 是一个键值对集合。 Redis hash是一个string类型的field和value的映射表hash特别适合用于存储对象。 实例 redis 127.0.0.1:6379 HMSET user:1 username w3cschool.cn password w3cschool.cn points 200
OK
redis 127.0.0.1:6379 HGETALL user:1
1) username
2) w3cschool.cn
3) password
4) w3cschool.cn
5) points
6) 200
redis 127.0.0.1:6379以上实例中 hash 数据类型存储了包含用户脚本信息的用户对象。实例中我们使用了 Redis HMSET, HGETALL 命令user:1 为键值。 每个 hash 可以存储 232 - 1 键值对40多亿。 List列表 Redis 列表是简单的字符串列表按照插入顺序排序。你可以添加一个元素导列表的头部左边或者尾部右边。 实例 redis 127.0.0.1:6379 lpush w3cschool.cn redis
(integer) 1
redis 127.0.0.1:6379 lpush w3cschool.cn mongodb
(integer) 2
redis 127.0.0.1:6379 lpush w3cschool.cn rabitmq
(integer) 3
redis 127.0.0.1:6379 lrange w3cschool.cn 0 10
1) rabitmq
2) mongodb
3) redis
redis 127.0.0.1:6379列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。 Set集合 Redis的Set是string类型的无序集合。 集合是通过哈希表实现的所以添加删除查找的复杂度都是O(1)。 sadd 命令 添加一个string元素到,key对应的set集合中成功返回1,如果元素以及在集合中返回0,key对应的set不存在返回错误。 sadd key member实例 redis 127.0.0.1:6379 sadd w3cschool.cn redis
(integer) 1
redis 127.0.0.1:6379 sadd w3cschool.cn mongodb
(integer) 1
redis 127.0.0.1:6379 sadd w3cschool.cn rabitmq
(integer) 1
redis 127.0.0.1:6379 sadd w3cschool.cn rabitmq
(integer) 0
redis 127.0.0.1:6379 smembers w3cschool.cn1) rabitmq
2) mongodb
3) redis注意以上实例中 rabitmq 添加了两次但根据集合内元素的唯一性第二次插入的元素将被忽略。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 zset(sorted set有序集合) Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 zset的成员是唯一的,但分数(score)却可以重复。 zadd 命令 添加元素到集合元素在集合中存在则更新对应score zadd key score member 实例 redis 127.0.0.1:6379 zadd w3cschool.cn 0 redis
(integer) 1
redis 127.0.0.1:6379 zadd w3cschool.cn 0 mongodb
(integer) 1
redis 127.0.0.1:6379 zadd w3cschool.cn 0 rabitmq
(integer) 1
redis 127.0.0.1:6379 zadd w3cschool.cn 0 rabitmq
(integer) 0
redis 127.0.0.1:6379 ZRANGEBYSCORE w3cschool.cn 0 10001) redis
2) mongodb
3) rabitmq 转载于:https://www.cnblogs.com/cxsabc/p/10627665.html