Redis常用数据结构和操作

Redis常用命令
    keys * 匹配键所有的键. 模糊匹配 keys * 取出所有已开头的键
    exists 判断是否键 exists name判断是否有name这个键是否存在
    del 删除键 del name 删除name的键
    expire 设置过期时间 expire key time 
    ttl key 查看键的过期时间
    select database 选择数据库
    move key dababase1 讲key移动dao database1中的数据库中
    persist 取消键的过期时间 
    randomkey 随机返回一个键的值
    rename 重命名一个键
    type key 判断key的数据类型

    ping ping我们的主机能否链接 链接是否存活
    echo 命令 echo demo直接输出
    select 选择数据库 select 0-16个数据库
    quit exit 退出链接
    dbsize 返回数据库的键的个数
    info 返回服务器相关信息
    config get 返回服务配置信息
    flush db 清空数据库
    flushall 删除所有数据库中所有的键



1.String类型
        set name link 
        get name 
        setnx name link  	设置name键值为link 如果存在,则返回0 不存在返回1
        mset name link age 23 	设置多个键值对,全成功,全失败
        msetnx name link age 23 sex F  	如果设置多个键值对中有一个存在就返回失败
        mget name age  	获取多个键的值
        getset name link  	获取name的值,并设置新的值为link
        setrange name 3 lll  	从key为name 的第三个字符后都替换
        getrange name 3 6  	获取key为name的3~6的值
        append name  	给键nane追加lll
        incr age 		设置每个值自增1 返回结果为24
        incrby age 6 	给name加6 
        strlen 		返回键对应的值得字符长度


2.Hash 存对象
        hset user:001 name link    设置或更新001的name 设置为 link
        hsetnx user:001 name link    设置表名字中的name ,若存在,设置不成功
        hget user:001 name 	获取001的name的值
        hmset user:001 name link age 23 	设置001多个值
        hmget user:001 name age 	获取001的多个值
        hincrby user:001 age 3     给001的age值加上3
        hexists user:001 name 	判断是否存在name的key
        hlen user:001 	返回001所有的字段的数目
        hkeys user:001 	返回001的所有字段
        hvals user:001 	返回001中所有的值
        hgetall user:001 	返回001所有的字段和值
        hdel user:001 name 	对001的name的值和键删除

 
3.list 链表 (双向链表)
	    做为栈:先进后出 昨晚队列:先进先出
        lpush list1 “world” 	从头压入
        rpush list2 “world” 	从尾部压入
        lrange list2 0 -1		全部取出
        linsert list3 before lll love	在lll前插入
        linsert list3 after lll love	在lll后插入
        lset list5 0 “deom”	替换某个位置的元素
        lrem list6 1 “link”	删除list6 中为link的值
        ltrim list7 1 2 (删除1,2之外的元素)
        lpop list8 	从链表的头部弹出一个元素
        rpop list8 	从链表的尾部弹出一个元素
        rpoplpush demo1 demo2	从一个链表弹出,在从头部压入到另一个链表
        lindex list11 0	返回一个list下标的索引值
        llen返回这个链表的元素的长度

4.set无序集合
        sadd set1 link	向集合中插入一条数据
        srem set1 link	删除集合中的一个元素
        smembers set1	查看集合中的元素
        spop 		从集合随机弹出一个元素
        sdiff s1 s2		两个集合的差集,根据第一个集合为标准
        sdiffstore setdemo1 setdemo2 setdemo3
    	将setdemo1 setdemo2 的差集放到 setdemo3中
        sinter 	将两个集合的交集
        sinterstore 	将两个集合的交集存储到另外一个集合中
        sunion 	将两个集合并集
        sunionstore 	将两个集合并集并存储到另外一个集合中
        smove setA two setB 集合中的two元素移动到setB中
        scard set1查看set1元素的个数
        sismember set3 link 判断link是否是set3中的元素
        srandmember set4 随机取出set4 中的元素

5.zset有序集合
        zadd 添加到有序集合中区
        zadd zsent 1 link1
        zadd zsent 2 link2
        zadd zsent 3 link3
        zadd zsent 4 link4

        zrange zsent 0 -1 withscores	按 score 值递增(从小到大)来排序
        zrem 	删除有序集合中的元素
        zrem zsent link 	删除zsent集合中的link
        zincrby zsent link 3	将zsent link的序号更改为3,如果没有,就创建
	zrank 	获取排名,按 score 值递增排序
	zrevrank 	获取排名,按 score 值递减(从大到小)排序
        zrangebyscore 	返回集合中指定的元素
        zrangebyscore setdeom 2 5 withscores	返回setdemo中2-5中的元素
        zcount 	返回指定空间的数量
        zcount set 2  4 	返回2~4中的元素个数
        zcard 	判断是否存在
        zremrangbyrank 	删除集合中指定区间的元素,并排序
        zremrangbyscore 	删除集合中指定元素,并排序

Redis 高级应用
	redis.conf
    在配置文件里面修改密码 requirepass password
    auth对密码进行授权登入或在登陆时后面加上–a yourpass
    主从复制:
        one: 一个master服务器可以拥有多个slave
        two: 一个salve可以有多个master 并且还可以与其他的salve相连接配置salve
        打开salveof注释 并添加主机的ip以及端口
        主机加了密码的时候还需要配置masterauth 密码
    redis 的事务处理
        输入:multi 打开一个上下文
        Set age 10
        Set age 144
        上面的全部放入队列最后执行,最后age为144
        回滚Discard    
    Redis的持久化
        方式一:  snapshotting (快照)将内存的数据写入到文件中 save 500 32 
                500秒内有32个键发         生变化则发起快照到文件中
        方式二: append only file 将每次写修改的命令保存到文件中
        配置:打开append only
                Appendfsync yes
                Appendfsync always 每次都写入
                Appendfsync everysec    每一秒写入
                Appendfsync no    不写入
=====================================================================================
    发布和订阅消息
        订阅:
       Subscribe tv1 tv2 订阅了两个频道
        发布:
         Publish tv1 link
        注:publish tv1的信息 订阅的信息都可以收到
    虚拟内存相关
        方式一:暂时把不使用的数据放到硬盘里面
       方式二:可以把数据分割到其他的slave数据服务器中

命令参考官方地址

http://redisdoc.com/index.html

猜你喜欢

转载自blog.csdn.net/lin252552/article/details/81356684
今日推荐