连接redis的指令(如何利用PHP访问带有密码的Redis)

本文目录
- 如何利用PHP访问带有密码的Redis
- 若redis版本不支持redis-cli命令,怎么连接
- 命令行怎么链接redis
- 怎样连接Redis数据库
- 如何连接redis
- Redis-cli详解
- redis集群命令-readonly、readwrite
- linux下怎么进入redis操作
如何利用PHP访问带有密码的Redis
1. 设置Redis密码,以提供远程登陆
打开redis.conf配置文件,找到requirepass,然后修改如下:
requirepass yourpassword
yourpassword就是redis验证密码,设置密码以后发现可以登陆,但是无法执行命令了。
命令如下:
redis-cli -h 127.0.0.1 -p 6379//启动redis客户端,并连接服务器
keys * //输出服务器中的所有key
报错如下
(error) ERR operation not permitted
这时候你可以用授权命令进行授权,就不报错了
命令如下:
auth youpassword
2. PHP访问Redis
$redis = new Redis();
$conn = $redis-》connect(’localhost’, 6379);
$auth = $redis-》auth(’20160601’); //设置密码
var_dump($auth);
$redis-》set(’access_token’, "123213213213213213");
$redis-》set(’expired_time’, 1464344863);
var_dump($redis-》get("access_token"));
var_dump($redis-》get("expired_time"));
若redis版本不支持redis-cli命令,怎么连接
redis-cli 命令总结
Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。
在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法。下面将Redis提供的命令做一总结。
***隐藏网址***
1、连接操作相关的命令
quit:关闭连接(connection)
auth:简单密码认证
2、对value操作的命令
exists(key):确认一个key是否存在
del(key):删除一个key
type(key):返回值的类型
keys(pattern):返回满足给定pattern的所有key
randomkey:随机返回key空间的一个key
rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key
dbsize:返回当前数据库中key的数目
expire:设定一个key的活动时间(s)
ttl:获得一个key的活动时间
select(index):按索引查询
move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库
flushdb:删除当前选择数据库中的所有key
flushall:删除所有数据库中的所有key
3、对String操作的命令
set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string(它们的名称为key1,key2…)的value
setnx(key, value):如果不存在名称为key的string,则向库中添加string,名称为key,值为value
setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time
mset(key1, value1, key2, value2,…key N, value N):同时给多个string赋值,名称为key i的string赋值value i
msetnx(key1, value1, key2, value2,…key N, value N):如果所有名称为key i的string都不存在,则向库中添加string,
名称key i赋值为value i
incr(key):名称为key的string增1操作
incrby(key, integer):名称为key的string增加integer
decr(key):名称为key的string减1操作
decrby(key, integer):名称为key的string减少integer
append(key, value):名称为key的string的值附加value
substr(key, start, end):返回名称为key的string的value的子串
4、对List操作的命令
rpush(key, value):在名称为key的list尾添加一个值为value的元素
lpush(key, value):在名称为key的list头添加一个值为value的 元素
llen(key):返回名称为key的list的长度
lrange(key, start, end):返回名称为key的list中start至end之间的元素(下标从0开始,下同)
ltrim(key, start, end):截取名称为key的list,保留start至end之间的元素
lindex(key, index):返回名称为key的list中index位置的元素
lset(key, index, value):给名称为key的list中index位置的元素赋值为value
lrem(key, count, value):删除count个名称为key的list中值为value的元素。
count为0,删除所有值为value的元素,count》0从头至尾删除count个值为value的元素,count《0从尾到头删除|count|个值为value的元素。
lpop(key):返回并删除名称为key的list中的首元素 rpop(key):返回并删除名称为key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。
如果timeout》0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对keyi+1开始的list执行pop操作。
brpop(key1, key2,… key N, timeout):rpop的block版本。参考上一命令。
rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
5、对Set操作的命令
sadd(key, member):向名称为key的set中添加元素member
srem(key, member) :删除名称为key的set中的元素member
spop(key) :随机返回并删除名称为key的set中一个元素
smove(srckey, dstkey, member) :将member元素从名称为srckey的集合移到名称为dstkey的集合
scard(key) :返回名称为key的set的基数
sismember(key, member) :测试member是否是名称为key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, key1, key2,…key N) :求交集并将交集保存到dstkey的集合
sunion(key1, key2,…key N) :求并集
sunionstore(dstkey, key1, key2,…key N) :求并集并将并集保存到dstkey的集合
sdiff(key1, key2,…key N) :求差集
sdiffstore(dstkey, key1, key2,…key N) :求差集并将差集保存到dstkey的集合
smembers(key) :返回名称为key的set的所有元素
srandmember(key) :随机返回名称为key的set的一个元素
6、对zset(sorted set)操作的命令
zadd(key, score, member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。
zrem(key, member) :删除名称为key的zset中的元素member
zincrby(key, increment, member) :如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;
否则向集合中添加该元素,其score的值为increment
zrank(key, member) :返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),
若没有member元素,返回“nil”
zrevrank(key, member) :返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),
若没有member元素,返回“nil”
zrange(key, start, end):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素
zrevrange(key, start, end):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素
zrangebyscore(key, min, max):返回名称为key的zset中score 》= min且score 《= max的所有元素
zcard(key):返回名称为key的zset的基数 zscore(key, element):返回名称为key的zset中元素element的
score zremrangebyrank(key, min, max):删除名称为key的zset中rank 》= min且rank 《= max的所有元素
zremrangebyscore(key, min, max) :删除名称为key的zset中score 》= min且score 《= max的所有元素
zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX):对N个zset求并集和交集,
并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。
如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,
结果集合中元素的score是所有集合对应元素中最小值和最大值。
7、对Hash操作的命令
hset(key, field, value):向名称为key的hash中添加元素field《—》value
hget(key, field):返回名称为key的hash中field对应的value
hmget(key, field1, …,field N):返回名称为key的hash中field i对应的value
hmset(key, field1, value1,…,field N, value N):向名称为key的hash中添加元素field i《—》value i
hincrby(key, field, integer):将名称为key的hash中field的value增加integer
hexists(key, field):名称为key的hash中是否存在键为field的域
hdel(key, field):删除名称为key的hash中键为field的域
hlen(key):返回名称为key的hash中元素个数
hkeys(key):返回名称为key的hash中所有键
hvals(key):返回名称为key的hash中所有键对应的value
hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
8、持久化
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务
9、远程服务控制
info:提供服务器的信息和统计
monitor:实时转储收到的请求
slaveof:改变复制策略设置
config:在运行时配置Redis服务器
命令行怎么链接redis
使用命令行工具:redis-cli -a 密码(没有就不要-a) -h 主机ip -p 端口号 即可连接上,例如:
redis-cli -a 123456 -h 192.168.1.1 -p 6379
怎样连接Redis数据库
Redis 连接命令主要是用于连接 redis 服务。
以下实例演示了客户端如何通过密码验证连接到 redis 服务,并检测服务是否在运行:
redis 127.0.0.1:6379》 AUTH "password"
OK
redis 127.0.0.1:6379》 PING
PONG
***隐藏网址***
如何连接redis
本人也是刚开始使用redis,目前接触到的根据业务的不同连接redis的情况有两种:
一:
1、先进到redis安装目录的bin目录下,本人的机器安装在这里,即/data/redis/bin
2、在/data/redis/bin目录下可以发现有一个redis-cli文件,执行该文件后即可进入命令为:./redis-cli,由于有密码,要输入密码,命令为:auth 密码,出现ok的时候即已经进入了redis
1、一般测试在使用redis的时候,使用的命令也较少,在此列举常用的几个:
查看所有的key:keys *
查看key的value:get 某个key
删除某个key: del 某个key
Redis-cli详解
-r(repeat)选项代表将命令执行多次,例如下面操作将会执行三次ping
命令:
redis-cli -r 3 ping
PONG
PONG
PONG
-i(interval)选项代表每隔几秒执行一次命令,但是-i选项必须和-r选 项一起使用,下面的操作会每隔1秒执行一次ping命令,一共执行5次:
注意-i的单位是秒,不支持毫秒为单位,但是如果想以每隔10毫秒执行 一次,可以用-i0.01
redis-cli -r 5 -i 0.01 ping
例如下面的操作利用-r和-i选项,每隔1秒输出内存的使用量,一共输出 100次
redis-cli -r 100 -i 1 info | grep used_memory_human
used_memory_human:2.95G
used_memory_human:2.95G
-x选项代表从标准输入(stdin)读取数据作为redis-cli的最后一个参 数,例如下面的操作会将字符串world作为set hello的值
$ echo "world" | redis-cli -x set hello
OK
-c(cluster)选项是连接Redis Cluster节点时需要使用的,-c选项可以防 止moved和ask异常
如果Redis配置了密码,可以用-a(auth)选项,有了这个选项就不需要 手动输入auth命令
--scan选项和--pattern选项用于扫描指定模式的键,相当于使用scan命令
--slave选项是把当前客户端模拟成当前Redis节点的从节点,可以用来 获取当前Redis节点的更新操作
下面开启第一个客户端,使用--slave选项,看到同步已完成:
$ redis-cli --slave
SYNC with master, discarding 72 bytes of bulk transfer...
SYNC done. Logging commands from master.
--rdb选项会请求Redis实例生成并发送RDB持久化文件,保存在本地。 可使用它做持久化文件的定期备份
--pipe选项用于将命令封装成Redis通信协议定义的数据格式,批量发送 给Redis执行
例如下面操作 同时执行了set hello world和incr counter两条命令:
echo -en ’*3\r\n$3\r\nSET\r\n$5\r\nhello\r\n$5\r\nworld\r\n*2\r\n$4\r\nincr\r\ n$7\r\ncounter\r\n’ | redis-cli --pipe
--bigkeys选项使用scan命令对Redis的键进行采样,从中找到内存占用比
较大的键值,这些键可能是系统的瓶颈
--eval选项用于执行指定Lua脚本,有关Lua脚本的使用将在3.4节介绍。
latency有三个选项,分别是--latency、--latency-history、--latency-dist。 它们都可以检测网络延迟,对于Redis的开发和运维非常有帮助。
该选项可以测试客户端到目标Redis的网络延迟,例如当前拓扑结构如 图3-4所示。客户端B和Redis在机房B,客户端A在机房A,机房A和机房B是
跨地区的
客户端B:
redis-cli -h {machineB} --latency
min: 0, max: 1, avg: 0.07 (4211 samples)
客户端A:
redis-cli -h {machineB} --latency
min: 0, max: 2, avg: 1.04 (2096 samples)
可以看到客户端A由于距离Redis比较远,平均网络延迟会稍微高一些
--latency的执行结果只有一条,如果想以分时段的形式了解延迟信息, 可以使用--latency-history选项:
redis-cli -h 10.10.xx.xx --latency-history
min: 0, max: 1, avg: 0.28 (1330 samples) -- 15.01 seconds range…
min: 0, max: 1, avg: 0.05 (1364 samples) -- 15.01 seconds range
可以看到延时信息每15秒输出一次,可以通过-i参数控制间隔时间。
(3)--latency-dist
该选项会使用统计图表的形式从控制台输出延迟统计信息。
--stat选项可以实时获取Redis的重要统计信息,虽然info命令中的统计信 息更全,但是能实时看到一些增量的数据(例如requests)对于Redis的运维还是有一定帮助的
--no-raw选项是要求命令的返回结果必须是原始的格式,--raw恰恰相反,返回格式化后的结果。
在Redis中设置一个中文的value:
$redis-cli set hello "你好"
OK
如果正常执行get或者使用--no-raw选项,那么返回的结果是二进制格式:
如果使用了--raw选项,将会返回中文:
$redis-cli --raw get hello
你好
redis集群命令-readonly、readwrite
readonly
redis集群在默认情况下,slaves服务器不为客户端提供读服务,可以通过设置readonly命令,允许客户端直接读取slaves服务器节点的读服务
如下一个集群中的一个主、从节点
redis 10.3.253.212:8386》 role
1) "master"
2) (integer) 6724358244
3) 1) 1) "10.3.253.212"
2)"8383" # 从节点
3)"6724358244"
redis10.3.253.212:8386》 set mykey 124 # 设置 key
OK
redis 10.3.253.212:8386》 get mykey
"124"
进入从节点读取key
redis 10.3.253.212:8383》 get mykey
(error) MOVED 14687 10.3.253.212:8386
可以看出,从节点默认不让读取,如果读取从节点,将会重定向到主节点。使用readonly命令,允许从节点提供读服务,如
redis 10.3.253.212:8383》 readonly
OK
redis 10.3.253.212:8383》 get mykey
"124"
该命令可在指定的master或slave的客户端上执行,但只在从节点上的执行才会让从节点提供读服务。
readwrite
取消(重置)readonly命令的设置,恢复salve节点默认状态
redis 10.3.253.212:8383》 readwrite
OK
redis 10.3.253.212:8383》 get mykey
(error) MOVED 14687 10.3.253.212:8386
redis 10.3.253.212:8383》
该命令可在指定的master或slave的客户端上执行,都会重置readonly命令。
linux下怎么进入redis操作
1.先进入redis目录,将redis安装到指定目录
使用make PREFIX=/usr/local/redis install 命令
2.进入redis目录复制redis.conf文件到usr/local/redis文件下
cp redis.conf /usr/local/redis
3.进入到redis目录下,运行vi redis.conf
4.将daemonize no改为 daemonize yes保存退出
5.重新启动一下redis服务
./bin/redis-server ./redis.conf
然后就可以使用redis进行操作了

更多文章:
service pack 3(操作系统版本升级(SP) Service Pack 3当中的“Service Pack 3”是什么意思)
2026年9月22日 10:20
html代码怎么写大佬教程(html网页的题来个大佬,写代码,题目在图上)
2026年9月22日 10:10
结构体内又一个struct(c++ 在结构体中再嵌入一个结构体如何调用)
2026年9月22日 09:40
cocos creator中文(cocoscreator和cocoscreator3d的区别)
2026年9月22日 02:30




