redis五种数据类型的增删改查语法

来源:互联网 发布:sqlserver 回滚 编辑:程序博客网 时间:2024/06/06 02:25

    选择数据库
    select(数字);选择写入到哪个redis
---------------------------------------
string类型数据
    设置生命周期
    set('键','值',数字时间);
    批量设置键值
    $arr={};
    mset($arr);
    
    TTl声明周期 -1表示永不过期
    
    setnx('键','值');如果键已经存在了就会设置不成功返回false,新的键可以设置成功,返回true
    
    删除数据,成功返回值是1,失败返回0
    delete('键');
    
    修改值
    set()方法
    incr('键');增加一次增加1,返回递增后的结果
    incrby('键',数字);一次增加参数2的值,返回递增后的结果
    
    decrby('键',数字);依次递减参数2的值,可为负数,
    
    获取值
    get()方法
    
    批量获取 返回一个数组
    mget(['键','键']);
    
------------------------------------------------
列表list
    做的是队列,数据结构,
    
    lpush('列表的名','值');从左边压值,插入头部,栈结构
    
    rpush('列表名','值);从右边尾部压值,
    
    内存中是没有左右的概念的
    
    lpop('列表名');从左边删除
    rpop('列表名');从右边删除
    
    lrem('列表名','值',数字);删除参数三个参数二的,删除之后他的位置会被后面的顶替了.从左侧删除
    
    
    
    索引争着从0开始 倒着是-1 -2 -3
    
    修改数据,把列表中索引为参数2的值改为参数3,注意,当参数二是整数的时候表示从左边数从0开始的,当参数二是负数是从右边数从-1开始的
    lset('列表名',索引值,'新值');
    
    
    从参数1的尾部取出一条数据插入参数2的头部
    rpoplpush('列表1','列表2');

    
    查询数据
    lindex('列表名',索引);索引为正的时候是从左开始,从0开始,当索引为负数的时候,从右开始,从-1开始
    注意,增删改返回值是布尔值,查是返回的是数据
    lrange('列表名',起始索引,终止索引);得到是一个数组,包含终止索引,注意如果是0,-1,表示查询所有
    
    查询列表的长度
    lsize('列表名');返回值是一个数字
-------------------------------------------------
集合
    无序的集合是无序的,内部是一个哈西克码,数据不能重复
    添加数据
    sadd('集合名','值','值2','值3');注意向集合中添加的值是不能重复的,重复的话就没有,
    
    删除数据
    srem('集合名','值');
    
    smove('a集合','b集合','a数据');移动a集合一个数据到b集合中
    
    获取集合中所有的元素
    smebers('集合名');返回一个数组
    
    获取集合中元素的个数
    ssize('集合名');
    
    从集合中随机获取一个元素
    srandmember('集合名');
    
    
    
    获取两个集合的交集,返回值是数组
    sinter('集合1','集合2');
    
    差集 参2有的参1没有的部分返回
    sdiff('集合1','集合2');
    
    
    并集
    sunion('集合1','集合2');
    
    交并差 返回值是一个数组
    
    检查集合中的元素是否存在
    返回时一个布尔值
    sismember(集合名,值);
-----------------------------------------------------
有序集合
    权重,分数,编号score
    
    
    添加数据
    zadd('集合名','编号','编号对应的值');
    标号是数字,排序就是根据他
    
    删除数据
    zrem('集合名','值');
    
    修改数据
    提高分数,在原来的基础上增加
    zincrby('集合名','要加的分数','值');
    
    //获取到集合中所有的元素,返回一个数组
    zrange('集合名',0,-1);正序
    
    zrevrange('集合名',0,-1);倒序
    
    
    根据分数取值    zrangebyscore('集合名',小分数,大分数);获取指定范围内的分数
    
    zrangebyscore('集合名',小分数,大分数,['withscore'=>true,'limit=>[0,3]);获取指定分数范围内的数据,并用数组的索引确定取几位,注意倒序也是可以的,
    zrevrangebyscore倒序
    zcount('集合名','小分数',大分数');获取指定分数范围内有多少元素
    

    zsize('集合名');获取集合中有多少个元素
    
    获取某个元素的排名,从0开始算起。
    zscore('集合名','值');
    
    
    正序查找集合中的值,返回值是一个数字,从零开始数
    zrank('集合名','值');
    zrevrank('集合名','值');倒序查从零开始数(0,1,2
    
--------------------------------------------
hash哈希,存储数据是用键值对存储的
    增加
    
    设置值
    hset('hash名','键','值');
    注意集合名就相当于数据库的表,
    
    批量设置值,注意如果只写值数组的下标是从零开始
    hmset('hash名',['键'=>值,'键'=>值],值);
    
    递加值,一次递增参数三
    hincrby('hash名','键',数字);
    
    
    
    删除数据
    hdel('hash名','键');
    
    修改数据的本质是设置值
    hset('hash名','键',修改后的值);
    
    获取键所对应的值,返回一个字符串
    hget('hash名','键');
    
    查询多个值,多个值放到一个数组中,返回一个数组
    hmget('hash名',['键','键']);
    
    查询所有的值,返回一个数组
    hgetall('hash名');
    
    获取hash中有几条数据,返回是一个数字
    hlen('hash名');
    
    
    获取所有的hash中所有的键的值,返回一个数组
    hkeys('hash名');
    
    获取hash中所有value的值,返回一个数组
    hvals('集合名');
    
    检查一个键是否存在,返回一个布尔值
    hexists('hash名','键');
------------------------------------------------------
五种数据结构五种 list hash string 有序集合 无需集合

通用操作
    select(数字);选择数据库0-15
    flushdb();清除当前的redis数据库
    
    flushAll();清除所有的redis数据库(0-15)每一个
    
    set('键','值');设置值
    expire('键',数字);给一个已存在的数据,设置生命周期
    
    del('键');删除键为这个的那条数据
    ttl('键');获取生命周期还剩多少,返回一个数字,如果已经不存在返回负二
    
    exists('键');检查键是否存在,返回布尔值
    
    keys('*');获取所有键的值
    注意可以用*所以正则表达式的写法是可用在这的
    

    
队列 思想的应用  要用redis里 list
    在项目中是为了实现异步
    用户--->注册成功-->提示用户去点击邮件激活-->点-->跳转到了
    
    将邮件放到一个队列中
    client 客户端
    将要做的事放到一个队列中,让他按照先后顺序
    
    表单--->服务器响应客户  放入队列---->处理程序取出队列中的数据
    
    
    php 文件名,服务器让一个PHP文件执行,
    单进程可以解决数据处理冲突的问题,例如,一百个客户注册交数据,就是开了100条进程,把这些数据放到一个队列中,处理的脚本从队列中获取数据进行处理,就能做到单进程处理数据
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
   
原创粉丝点击