在已经安装Redis完毕后,使用Redis进行各项数据操作。
(1)打开linux命令面板。cd进入到redis路径目录
(2)redis-server就可以启用redis服务
打开linux面板,在命令行输入redis-cli启用redis客户端
redis-cli #启动redis客户端
redis-cli --raw #如果后面加--raw ,可以防止中文乱码,能直接显示中文,不会被转化为编码字符串
(4)验证密码是否正确,查看服务是否运行
auth password #验证密码
ping #检测是否连通
(5)info命令 ,查看当前redis所有配置信息
(6)info命令后,显示出来的信息中,# Keyspace代表当前库使用情况
redis一共0-15号库(16个库),默认使用0号库
(7)选择哪个库
select 数字
(8)选择库后,查看该库所有数据信息(不选择库默认查看0号库的信息)
keys *
(9)查看某个key的value值
get key名 例如: get token_zzz2
(10) 查看内存使用情况
info Memory
字段解释:
used_memory_peak_perc:28.14% //当前使用百分比
total_system_memory_huma :31.26G //总的可使用内存
---------------------------------------------------------------------------------------
连接redis:
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379); //连接本地的 Redis 服务
$redis->auth("123456"); //密码授权
$redis->select(2); //选择数据库
类型一:String(字符串)
(1)设置值
$redis->set($key,$value); //设置值
$redis->expire($key,8); //设置过期时间
$redis->setex($key,8,$value); //设置值,并同时设置过期时间
$redis->setnx($key,$value); //key值不存在就插入设置,否则不执行
(2)获取值
$redis->get($key); //获取值
$redis->getset($key,$value); //对key值设置新的value,并返回之前的value值
(3)删除值
$redis->del($key); //删除键值对
更多其他操作可以参考网上链接:redis 在 php 中的应用(string篇) - Chrdai - 博客园
类型二:hash(哈希)
(1)单个值的存取
$hash=1;
$field='s1';
$value='小明';
$redis->hset($hash,$field,$value); #设置单个值
$a=$redis->hget($hash,$field); #获取单个值
(2)多个值的存取:
$hash=1;
$data=array(
's1'=>'小明',
's2'=>'小红',
's3'=>'小刚',
's4'=>'小赵',
's5'=>'小蓝',
);
$redis->hmset($hash,$data); #设置多个值
$redis->hget($hash,'s1'); #获取单个值
$array_get=array('s1','s2','s3','s4');
$redis->hmget($hash,$array_get); #获取多个值
$redis->hgetall($hash); #获取所有值
$redis->hsetnx($hash,$value); #hash值不存在就插入设置,否则不执行
(3)删除哈希表数据
$redis->hdel($hash,'s1'); #删除单个key值
$redis->del($hash); #删除整个表
更多其他操作可以参考网上链接: https://www.cnblogs.com/chrdai/p/6840000.html
类型三:List(列表)
(1)插入值(lPush,lPushx,RPush,RPushx)
Lpush 命令将一个或多个值插入到列表头部。
Lpushx 将一个或多个值插入到已存在的列表头部,列表不存在时操作无效。
Rpush 命令用于将一个或多个值插入到列表的尾部(最右边)。
Rpushx 命令用于将一个或多个值插入到已存在的列表尾部(最右边)。如果列表不存在,操作无效。
$redis->lPush('list', 'aaa');
$redis->lPush('list', 'bbb', 'ccc','ddd');
$redis->rPush('list', 'eee');
$redis->rPush('list', 'eee','fff', 'ggg');
(2)获取值 (Lrange)
Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。
其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
$redis -> lRange('list',0,-1);
(3)删除值(Lrem)
Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
COUNT 的值可以是以下几种:
count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
count = 0 : 移除表中所有与 VALUE 相等的值。
$redis -> lRem('list','eee',2)
更多其他操作可以参考网上链接:https://www.cnblogs.com/chrdai/p/6841474.html
类型四:Set(集合)
Set 是 string 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
(1)SADD
Sadd 命令将一个或多个成员元素加入到集合中,
$redis->sAdd('myset', 'hello');
$redis->sAdd('myset', 'foo');
(2)SMEMBERS
返回集合中的所有的成员。
$redis -> sMembers('myset');
(3)SREM
移除集合中的一个或多个成员元素,返回移除元素的个数
$redis -> sRem('myset','hello'); #移除单个
$redis -> sRem('myset','foo','hi') #移除多个
(4)SCARD
返回集合中元素的数量。
$redis -> sCard('myset') #返回个数
更多其他操作可以参考网上链接:https://www.cnblogs.com/chrdai/p/6846352.html
类型五:Sorted-set(有序集合)
有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的。
(1)ZADD
将一个或多个成员元素及其分数值加入到有序集当中。(分数值可以是整数值或双精度浮点数。)
如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。
$redis -> zAdd('myset',0,'hello');
$redis -> zAdd('myset',1,'world');
$redis -> zAdd('myset',1,'foo'); // 集合中的元素唯一,但是分数可以重复
$redis -> zAdd('myset',2,'hi');
$redis -> zAdd('myset',2.5,'welcome');
(2)ZRANGE
返回有序集中,指定区间内的成员。
ZRANGE key start stop [WITHSCORES]
(其中成员的位置按分数值递增(从小到大)来排序。具有相同分数值的成员按字典序(lexicographical order )来排列)
如果你需要成员按值递减(从大到小)来排列,请使用 ZREVRANGE 命令。
下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。
你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
$redis ->zRange('myset',0,-1,'withScore')
返回结果示例:
array(5) {
["hello"] => float(0)
["foo"] => float(1)
["world"] => float(1)
["hi"] => float(2)
["welcome"] => float(2.5)
}
(3)ZREM
移除有序集中的一个或多个成员,不存在的成员将被忽略。
$redis ->zRem('myset','hi');
$redis ->zRem('myset','hello','world');
(4)ZSCORE
返回有序集中,成员的分数值。
$redis ->zScore('myset','foo');
更多其他操作可以参考网上链接:https://www.cnblogs.com/chrdai/p/6851731.html