安装redis
一、安装redis扩展[让php环境支持redis]
1、https://pecl.php.net/package/redis/4.2.0RC2/windows -> 选择版本
2、下载完成以后解压,把php_redis.dll,php_redis.pdb,移动到wnmp\php\ext的文件中
3、然后在php的配置文件中,加上extension=php_redis.dll
4、重启apache服务器,在去phpinfo去查看是否安装成功
5、如果你没配置默认开启redis服务,则要打开黑窗口开启redis服务
提示:ts表示线程安全的,nts表示非线程安全的,根据php使用的版本定。(可以通过phpinfo中的Thread Safety来确定php是什么样的版本,enabled:表示是线程安全的,disabled:表示非线程安全的)
二、下载redis
1、https://github.com/MSOpenTech/redis/releases -> Redis-x64-3.2.100.zip
2、设置全局环境变量
3、打开服务器 C:\Users\root>redis-server.exe 和 客户端PS C:\Users\root> redis-cli.exe
以上是Windows环境的操作;;;
配置文件
Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。
redis.conf
CONFIG GET CONFIG_SETTING_NAME
CONFIG GET *
CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
1、指定Redis监听端口,默认端口为6379 port 6379
2、客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能 timeout 300
3、指定在多长时间内,有多少次更新操作 save <seconds> <changes>
4、指定本地数据库存放目录 dir ./
5、设置同一时间最大客户端连接数,默认无限制 maxclients 128
6、指定Redis最大内存限制 maxmemory <bytes>
注意:Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作
7、设置Redis连接密码 requirepass foobared
如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
【设置密码后,客户端连接 redis 服务就需要密码验证,否则无法执行命令。AUTH password】
Redis支持五种数据类型
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
*string
SET name "runoob" -> GET name
注意:一个键最大能存储512MB。
*hash
HMSET myhash field1 "Hello" field2 "World"
HGET myhash field2
*list
lpush runoob redis lpush runoob mongodb
lrange runoob 0 10
*set
sadd runoob redis
smembers runoob
添加一个 string 元素到 key 对应的 set 集合中,成功返回1,如果元素已经在集合中返回 0,如果 key 对应的 set 不存在则返回错误。
*zset
zadd runoob 0 redis
zadd runoob 0 mongodb
ZRANGEBYSCORE runoob 0 1000
远程 redis 服务上执行命令
$ redis-cli -h host -p port -a password
-
key 命令
SET runoobkey redis DEL runoobkey
DEL 是一个命令, runoobkey 是一个键。 如果键被删除成功,命令执行后输出 (integer) 1,否则将输出 (integer) 0
序列化给定 key ,并返回被序列化的值。dump key
为给定 key 设置过期时间 expire key seconds
检查给定 key 是否存在。 exists key
以秒为单位,返回给定 key 的剩余生存时间 ttl jey
修改 key 的名称 rename key newkey
返回 key 所储存的值的类型 type key -
string命令
只有在 key 不存在时设置 key 的值。setnx key value
返回 key 所储存的字符串值的长度 strlen key -
hash 命令
同时将多个 field-value (域-值)对设置到哈希表 key 中.。 hmset key value1[field2 value2]
获取所有给定字段的值 hmget key field1 [field2]将哈希表 key 中的字段 field 的值设为 value 。hset key field value
获取存储在哈希表中指定字段的值。hget key field获取在哈希表中指定 key 的所有字段和值。hgetall key
只有在字段 field 不存在时,设置哈希表字段的值。hsetnx key field value
删除一个或多个哈希表字段 hdel key field1 field2
事务
批量操作在发送 EXEC 命令前被放入队列缓存。
收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。
标记一个事务块的开始。 multi
执行所有事务块内的命令。exec
取消事务,放弃执行事务块内的所有命令。discard
常见命令
查看服务是否运行 ping
关闭当前连接 quit
获取 redis 服务器的统计信息:info
获取连接到服务器的客户端连接列表 client list
删除所有数据库的所有key flushall
删除当前数据库的所有key flushdb
同步保存数据到硬盘 save
redis 性能测试的基本命令如下:redis-benchmark [option] [option value]
eg: redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q
以上实例中主机为 127.0.0.1,端口号为 6379,执行的命令为 set,lpush,请求数为 10000,通过 -q 参数让结果只显示每秒执行的请求数。