Redis个人笔记(小白可看)

Redis个人笔记…(持续更新,小白可看)

纯属个人笔记

windows使用Redis

**1、下载[https://github.com/MSOpenTech/redis/releases],我的电脑是64位的,所以我下载的是×64.zip

2、解压当前目录,打开安装目录,程序说明

redis-benchmark :性能测试工具

redis-check-aof :修复有问题的AOF文件

redis-check-dump :修复有问题的dump.rdb文件

redis-cli :命令行工具

redis-sentinel :redis集群使用

redis-server :redis服务启动命令

3、启动Redis服务

1、首先在桌面此电脑里面选择环境变量点击Path,把Redis的文件目录直接放进去就可以了,以后就省了再cd切换到Redis的目录下进行操作了

2、启动Redis服务:redis-server redis.windows.conf

3、进入Redis目录,redis-cli.exe -h 127.0.0.1 -p 6379 --raw(如果是Linux系统的话,先查询一下ip地址,后面添加–raw,在输出中文时可避免出现乱码)

PHP(Redis)操作

<?php 



//链接redis服务
$redis = new Redis();
$redis->pconnect('127.0.0.1',6379);







//string(字符串)普通的get和set操作,get输出、set写入
$redis->set('string1','predis');
$ret = $redis->get('string1');
var_dump($ret);

//setnx 只有在key不存在时设置key的值
$redis->setnx('string2','predis1');
$ret = $redis->get('string2');
var_dump($ret);

//incr、incrby、decr、decrby对值的递增和递减
$redis->set('string3', 1);
$redis->incr('string3');
$redis->incrby('string3', 1);
echo $redis->decr('string3');
echo $redis->decrby('string3', 1);
echo $redis->get('string3');
















//set(集合)sadd特定集合添加一个元素
$redis->sadd('set1', 12);
$redis->sadd('set1', 13);
$redis->sadd('set1', 19);
$redis->sadd('set1', 56);
$redis->sadd('set2', 'qwe');

//srem 移除指定元素,
$redis->srem('set1', 13);

//spop移除并返回集合中的一个随机元素
echo $redis->spop('set1');

//scard返回集合中元素的数量
echo $redis->scard('set1');

//smembers返回当前表中的所有元素
$red = $redis->smembers('set1');
var_export($red);













//zset(sorted set)有序集合,zadd增加元素,并设置分数,成功返回true,失败返回false
$redis->zadd('zset1', 1 ,'ab');
$redis->zadd('zset1', 2 ,'cd');
$redis->zadd('zset1', 3 ,'ef');
$redis->zadd('zset1', 4 ,'gh');

//zincrby对指定元素分数值的增减
$redis->zincrby('zset1',1,'ab');

//zscore查询元素的分数值
$redis->zscore('zset1', 'gf');

//zrem移除指定元素
$redis->zrem('zset1', 'gf');

//zcard统计元素个数
$redis->zcard('zset1');

//通过索引区间返回有序集合成指定区间内的成员,注意,不是score
$redis->zrange('zset1',0,-1);		//返回位置0和倒数第一个元素之间的元素(相当于全部元素)  zrange从小到大排列、zrevrange从大到小排列
$redis->zrevrange('zset1',0,-1);	//从大到小排列	

//按照分数值(score)返回元素
$redis->zrangebyscore('zset1', 2, 9); 	//返回分数值2-9之间的元素
// $redis->zrangebyscore('zset1', 2, 9, 'withscores');		//返回分数值2-9之间的元素,并包含分数值所在元素














//list(列表)
$redis->lpush('list1', 'bar1'); 		//返回列表的长度
$redis->rpush('list1', 'bar0');			//返回列表的长度

// 为已存在的列表添加值
$redis->rpushx('list1', 'bar2'); // 成功返回列表的长度,列表不存在返回0
$redis->lpushx('list2', 'bar2'); // 成功返回列表的长度,列表不存在返回0


// llen返回当前列表长度
$redis->llen('list1');

// lrange 返回队列中一个区间的元素
$redis->lrange('list1', 0, 1); // 返回数组包含第0个至第1个共2个元素
$redis->lrange('list1', 0, -1); // 返回第0个至倒数第一个,相当于返回所有元素


// lset 修改队列中指定位置的value
$redis->lset('list1', 1, '123');

// lindex 返回指定顺序位置的list元素
$redis->lindex('list1', 1);

// lpop/rpop 弹出(并删除)最左或最右的一个元素
$redis->lpop('test:list1');
$redis->rpop('test:list1');






















// Hash(哈希) hset/hget 存取hash表的数据
$redis->hset('hash1', 'field1', 'v1');
$redis->hset('hash1', 'field2', 'v2');
$redis->hget('hash1', 'field1');

// 只有在字段 field 不存在时,设置哈希表字段的值
$redis->hsetnx('hash1', 'field1', 'v2');
$redis->hsetnx('hash1', 'field3', 'v3');

// hmset/hmget 存取多个元素
$redis->hmset('hash1', array('field3' => 'v3-2', 'field4' => 'v4'));
$redis->hmget('hash1', array('field3','field4'));

// hincrby 指定字段,设置整数增量
$redis->hincrby('hash1', 'field5', 3);
$redis->hincrby('hash1', 'field6', -10);

// hexists 查询特定哈希表中,指定field的元素是否存在
$redis->hexists('hash1', 'field1');

// hdel 删除hash表中指定field的元素
$redis->hdel('hash1', 'field2');

// hlen 返回hash表元素个数
$redis->hlen('hash1');

// hkeys 返回hash表中的所有key
$redis->hkeys('hash1');

// hvals 返回hash表中的所有value
$redis->hvals('hash1');

// hgetall 返回整个hash表元素
$redis->hgetall('hash1');

















//没有数据类型的区别,也就是所有数据类型都有这些操作。
//如果对key使用set或del命令,那么也会移除expire_time。尤其是set命令,这个在编写程序的时候需要注意一下。

// exists 检测是否存在某值
$redis->exists('test:foo');

// del 删除
$redis->del('test:foo');

// expire 设置key-value的时效性,ttl 获取剩余有效期,persist 重新设置为永久存储
$redis->expire('test:foo', 1); // 设置有效期
$redis->ttl('test:foo'); // 返回有效期值

// type 类型检测。字符串返回string,列表返回list,set表返回set/zset,hash表返回hash
$redis->type('test:foo');

//redis 的key,一般使用英文半角冒号(:)作为分隔,如 (test:list:item:one)









//按照分数从大到小排序
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);


$redis->zadd('Leaderboard Name', 10, 'zhangsan');
$redis->zadd('Leaderboard Name', 20, 'lisi');
$redis->zadd('Leaderboard Name', 50, 'laowang');
$redis->zadd('Leaderboard Name', 100, 'laobai');


$redis->zincrby('Leaderboard Name', 80, 'zhangsan');

//排分数从大到小
$a = $redis->zrevrange('Leaderboard Name',0, -1);

//排分数从小到大
// $a = $redis->zrange('Leaderboard Name', 0, -1);

var_dump($a);











?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值