Redis教程

Redis学习笔记

本文主要是介绍Redis学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Redis的数据结构:

        String(字符串)
        hash(哈希/链表/字典-php关联数组)
        list(字符串列表-php索引数组[先进后出])
        set(无序字符串集合)
        sorted set(有序字符串集合)


1.Redis的数据结构之字符串:

        set person jack 赋值增加一个键值对

        del person 删除

        get person 查询

        getset person jason, 修改person值为jason

        incr num,如果没有num这个键则初始化为0,并+1,必须为数字类型

        decr num2,如果没有num这个键则初始化为0,并-1,必须为数字类型

        incrby num 5,给num加指定的数值5

        decrby num 3,给num减3

        append num 5,给num追加5这个字符串,结果为35


2.Redis的数据结构之hash(哈希):

        hset myhash username jack #设置一个键值对

        hset myhash age 18 

        hmset myhash2 username rose age 21 #设置多个键值对

        hget myhash username #获取一个键的值

        hmget myhash username age #获取多个hash键位的数据

        hgetall myhash 获取某个hash的所有键值对

        hdel myhash2 username age #删除特定的键值

        hgetall myhash2 #获取myhash2的所有键值对

        del myhash #删除整个集合

        hexists myhash username 判断某个键是否存在


3.Redis的数据结构之list:

        lpush mylist a b c    list左侧添加

        rpush mylist a b c  list右侧添加

        lrange xxx 0 5     角标0到第5位 查询元素
        lrange xxx 0 -1  0到倒数第一位

        lpop mylist    左侧弹出
        rpop mylist    右侧弹出

        llen mylist   查询长度

        lpushx/rpushx mylist x    头部添加x 没有则不添加

        lrem mylist m x    从左删除m个x元素  删除list元素
        lrem mylist -m x    从右删除m个x元素
        lrem mylist 0 x     删除所有x元素

        lset mylist 3 mmm     设置(修改)角标元素

        linsert mylist before/after  [value] [insertvalue]     某个值之前/之后插入元素 

        rpoplpush mylist1 mylist2    将list1最右边的值pop到list2最左边 


4.Redis的数据结构之Set:

与List类型不同,set集合不允许出现重复的元素,Set可包含的最大元素数量是42949672

---添加/删除元素

        sadd myset a b c 1 2 3

        srem myset 1 2  

---获得集合中的元素

        smembers myset

        sismember myset a  (有就显示1,无就显示0)

---找出集合中的差集

        sadd mya1 a b c

        sadd myb1 a c 1 2

        sdiff mya1 myb1

---找出集合中的交集

        sinter

---集合中的并集:

        sunion

---扩展命令:

        获取set具体的成员数量  scard myset

        随机返回set中的一个成员 srandmember

        将两个集合相差的成员存储到其他集合上sdiffstore my1 mya1 myb1

        将两个集合的交集存储到其他集合上sinterstore my1 mya1 myb1

        将两个集合的并集存储到其他集合上sunionstore my1 mya1 myb1


5.Redis的数据结构之sorted set:

        与set类型很相似比set快,并且成员在集合的位置是有序的。

        增加:zadd    zadd mysort    80 zs 90 ls 100 ww    值相同则更新分数

        查看分数:zscore    zscore mysort zs

        计数:zcard    zcard    mysort

        遍历:zrange    zrange mysort 0 -1 按照默认顺序显示值
   
        zrange mysort 0 -1 withscores    显示值和分数

        zrevrange mysort 0 -1 withscores    逆序显示值和分数

        删除:zrem    zrem mysort ls

        zremrangebyrank mysort 0 4 按照范围进行删除

        zremrangebyscore mysort 80 90 按照分数范围进行删除

        递增:zincrby    zincrby mysort 3 ls    给ls的分数加三


6.Redis Keys的通用操作:

        启动服务:redis-server.exe  --service-start
        客户端调用: redis-cli.exe -h 127.0.0.1 -p 6379
        停止服务:redis-server.exe  --service-stop
        卸载服务: redis-server.exe  --service-uninstall
        exit  退出

---Keys的通用操作:

        keys *   -查询所有的keys

        keys my?    -查询以my开头的keys

        del mylist1 mylist2   -删除keys

        exists mylist      -判断keys是否存在,存在返回1,不存在返回0

        rename company newcompany        -重命名,把company改名为newcompany

        expire newcompany 1000         -设置keys的超时时间

        ttl newcompany     -查看keys的剩余超时时间

        type mylist    -查看keys的类型 

        flushall  清空数据库

        clear 清空当前窗口命令


7.Redis特性:

---多数据库:

        redis最大支持16个数据库,按0~15的索引排列

        默认使用的是0数据库

        select 0   选取数据库select 1

        move keyName index 将key移动到指定数据库 move mylist 1

---使用multi、exec、discard来实现事务:

        multi    开启事务(begin)
        --
        redis的一些操作等
        --
        exec   提交(commit)/discard 回滚(rollback)


事务中,所有命令都会串行执行,事务执行期间,redis不会为其它的客户端提供服务,从而保证命令原子化执行。

这篇关于Redis学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!