掌握Redis,看完这篇文章就够了

Redis是非关系型数据库(NoSql),以键值数据类型存储数据库类似于字典

Redis是内存数据库,而mysql,mongo都是以文件的形式存储在磁盘上。由于 redis数据存储在内存中,操作内存速度远远高于磁盘,并且redis数据最终也可以持久化存储在磁盘上

redis服务器与客户端


            启动服务器:redis-server 配置文件

redis-server "C:\Program Files\Redis\redis.windows.conf" -p******

           客户端连接服务器: redis-cli -h 主机ip  -a 输入密码

配置文件(conf)文件路径('C:\Program Files\Redis\redis.windows.conf')

    "dbfilename": 数据文件 "dump.rdb"       
    "requirepass"::用户连接密码,默认没有密码,需要自己设置
    "masterauth":主机密码
    "logfile":日志文件
    "loglevel":日志等级

使用python操作redis数据库

键对应操作

    keys(): 返回所有键
    exits(key):查看键是否存在
    type(ksy):查看键对应的值的类型
    expire(k,time):设置有效期
    delete(key):删除键
    ttk(key):查看键的剩余存在时间

字符串方法

# 字符串
# r = client.set('s2','hi world')
# print(r,type(r))
# r = client.get('s2')
# print(r,type(r))
# r = client.mset(({'s1':15,"s2":2,"s3":5}))
# print(r,type(r))
#
# r = client.mget(['s1','s2','s3'])
# print(r,type(r))
# r = client.setex('s5',5,25)
# print(r)
# print(client.get('s5'))
# r = client.setnx('s6',1254)
# print(r)

# r = client.incrby('s6',25)
# print(r)
# r = client.append('s6',25)
# print(r)
# print(client.keys())
#
# print(client.exists('s6'))
# print(client.exists('s8'))

        set(k,v): 添加键值对
        get(k):  获取单个键对应的值
        mset({k:v,k:v}): 设置多个
        mget(k,k,k,k): 获取多个
        incr: 增1
        incrby: 增,增量
        decr: 减1
        decrby: 减,增量
        delete:删除
        setex(k,t,v):设置带有有效时间
        setnx(k,v):不存在则插入
        append(k,v): 在原始数据类型后面拼接, 返回值是值的长度

哈希(存储键值对)方法

# 哈希  键(redis键)   字段(哈希中的键)   值(哈希中的值)
# r = client.hset('h2','hk1','khg')
# print(r)

# r = client.hmset('h2',{'hk2':'ki','hk3':'kjh','hk5':'klh'})
# rt = client.hget('h2','hk1')
# print(rt,type(rt))
# r = client.hmget('h2',['hk1','hk2','hk3'])
# print(r,type(r))

# r = client.hgetall('h2')
# print(r,type(r))

# r = client.hexists('h2','hk3')
# print(r)

# r = client.hvals('h2')
# print(r)
#
# r = client.hkeys('h2')
# print(r)
#
# r = client.hlen('h2')
# print(r)

            hset(name,key,value):添加键值对
            hget(k): 获取单个键对应的值
            hmset(name,{}):添加多个键值对
            hmget(name,[key]):获取多个键对应的值
            hincrby(name,key, value):字段的值,增加的量
            hdel(name,key): 删除字段
            hexits(name,key): 查看是否存在该字段
            hlen(name,key): 返回键值对的长度
            hvals(name):所有字段的值
            hkeys(name):所有字段
            hgetall(name):获取所有的字段和值

集合(无序不重复)

        sadd(key,*values):将多个数据插入集合中
        srem(key,value): 移除指定value
        spop(key): 随机移除
        scard(key): 集合元素的个数
        smembers(key): 返回所有元素
        sismember(key,value): 是否在集合中
        sinter([key,key]): 返回交集
        sinterstore(dest,[key,key]): 将返回的交集存储到集合
        sunion([key,key]): 返回并集
        sunionstore(desc,[key,key]): 将返回的并集存储到集合
        sdiff([key,key]): 返回差集
        sdiffstore(desc,[key,key]): 将返回的差集存储到集合
        srandmember(key,count): 随机取出count个不删除

有序集合( 通过权重实现有序,  每一个值都带有权重,通过权重排序)方法

            zadd(name,{v:score}):  添加带有权重的元素
            zrem(name,v,v):  从有序集合中移除
            zcard(name):  返回个数
            zcount(name,min,max):  权重在min和max之间的元素个数
            zrange(name,start,top): 获取指定范围元素
            zrevrange(name,start,stop): 逆序获取索引对应元素
            zrangebyscore(name,max,min): 获取指定分支对应的元素
            zrevrangebyscore(name,max,min): 逆序获取指定分支对应的元素
            zscore(name,value): 获取value对应的权重

# 集合
# r = client.sadd('set2','ke1','ke2','ke3','ke4','ke5','ke6','ke3','ke4','ke7','')
# print(r)

# r  = client.srem('set1','ke3','ke4','ke7')
# print(client.smembers('set1'))

# r = client.sismember('set1','ke2')
# print(r)

# r = client.sinter(['set1','set2'])
# print(r)

# r = client.sinterstore('set3',['set1','set2'])
# print(r)

# r = client.sunionstore('set3',['set1','set2'])
# print(r)
#
# r = client.sdiffstore('set3',['set1','set2'])
# print(r)
# print(client.smembers('set1'))
# r = client.srandmember('set1',3)
# print(r)
# print(client.smembers('set1'))

# 有序集合

# r = client.zadd('zset1', {'v4': 0, 'v5': 15, 'v6': 35})
# print(r)
# r = client.zrange('zset1',0,-1,withscores=True)
# print(r)
# r = client.zrem('zset1','v1','v2')
# print(r)
# r = client.zrange('zset1',0,-1,withscores=True)
# print(r)
# r = client.zscore('zset1','v5')
# # print(r)

    列表( 存储多个数据)操作

        lpush(k,v):  从左侧添加数据
        rpush(k,v):  从右侧添加数据
        lpop(k):  从左侧删除数据
        rpop(k):  从右侧删除数据
        lset(k,index.v):  修改指定位置的元素值
        linsert(k,after|before, pivot,value):  在指定位置插入元素
        lrem(k,count,value):  删除指定位置的元素
        ltrim(k,start,stop):  把原始内容切片
        lrange(k,start,end):  返回对应位置范围内所有元素
        lindex(k,index):  返回索引对应的元素

# r = client.lpush('l1','ke1','ke2','ke3','ke4','ke5','ke6','ke3')
# print(r)

# r = client.ltrim('l1',1,6)
# print(r)
# r = client.ltrim('l1',1,6)
# print(r)
# r = client.rpush('l1','ke5','ke8')
# print(r)
# r = client.lpush('l1','ke9','ke10')
# print(r)
# r = client.lpop('l1',)
# print(r)
# r = client.rpop('l1')
# print(r)
# r = client.lset('l1',0,'ke09')
# print(r)
# r = client.linsert('l1','before','ke5','ke08')
# print(r)
# r = client.lrem('l1',5,'ke5')
# print(r)
# r = client.ltrim('l1',0,1)
# print(r)
r = client.lrange('l1',0,1)
print(r)

r = client.lindex('l1',1)
print(r)

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值