亚洲城ca88手机版官网刚安装的Linux,hash类型操作

亚洲城ca88手机版官网 2
亚洲城ca88手机版官网

 

Redis在内部存款和储蓄器中存款和储蓄hash类型是以name对应1个字典情势累积的

#给name对应的集合中添加元素
r.sadd("set_name","aa")
r.sadd("set_name","aa","bb")

重新执行命令:

其它操作

依赖name删除redis中的大肆数据类型
delete(*names)

检查实验redis的name是或不是存在
exists(name)

根据* ?等通配符相配获取redis的name
keys(pattern=’*’)

为某些name设置超时时间
expire(name ,time)

重命名
rename(src, dst)

将redis的某些值移动到钦定的db下
move(name, db))

收获name对应值的项目
type(name)

_keys = r.keys()
print(_keys)
# ['set_2', 'set_tmp', 'set_3', 'set_name', 'hash1']
r.delete('set_2')
_keys = r.keys()
print(_keys)
# ['set_tmp', 'set_3', 'set_name', 'hash1']

print(r.keys(pattern= 'set_2'))
# []

r.move('hash1', 1)
# [root@Node1 src]# ./redis-cli
# 127.0.0.1:6379> keys *
# 1) "set_tmp"
# 2) "set_3"
# 3) "set_name"
# 127.0.0.1:6379> select 1
# OK
# 127.0.0.1:6379[1]> keys *
# 1) "hash1"
# 127.0.0.1:6379[1]>


r.rename('set_now','set_tmp')
_keys = r.keys()
print(_keys)
r.rename('set_tmp', 'set_now')
_keys = r.keys()
print(_keys)
# ['set_tmp', 'set_3', 'set_name', 'hash1']
# ['set_now', 'set_3', 'set_name', 'hash1']
  1. hmset 在name对应的hash中批量设置键值对,mapping:字典

 

常用操作

在name对应的hash中获得依照key获取value
hget(name,key)

在name 对应的hash 中器械键值对
hset(name, key, value)

在name对应的hash中批量设置键值对
hmset(name, mapping)

在name对应的hash中获得多少个key的值
hmget(name, keys, *args)

得到name对应hash的有着键值
hgetall(name)

收获name对应的hash中键值的个数
hlen(name)

获得name对应的hash中保有的key的值
hkeys(name)

赢得name对应的hash中享有的value的值
hvals(name)

检查name对应的hash是不是留存当前传来的key
hexists(name, key)

将name对应的hash中内定key的键值对删除
hdel(name, *keys)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time   : 
# @Author :
# @File   : hash.py
import redis

redis_info = {
    'host': '11.11.11.11',
    'port': 6379
}

def conncet_redis():
    pool = redis.ConnectionPool(**redis_info)
    try:
        r = redis.Redis(connection_pool=pool)
    except Exception as err:
        raise err
    return r

r = conncet_redis()

r.hset('hash1', 'test1', 'val_1')
print(r.hget('hash1', 'test1'))
# val_1

r.hmset('hash1',{'k2':'v2', 'k3':'v3'})
print(r.hmget('hash1', ['k2', 'k3', 'test1']))
# ['v2', 'v3', 'val_1']

print(r.hgetall('hash1'))
# {'test1': 'val_1', 'k3': 'v3', 'kl': 'v1', 'k_l': 'valu', 'k2': 'v2'}
print(r.hlen('hash1'))
# 5
print(r.hkeys('hash1'))
# ['test1', 'k3', 'k2', 'kl', 'k_l']
print(r.hvals('hash1'))
# ['val_1', 'v3', 'v2', 'v1', 'valu']
print(r.hexists('hash1', 'test1'))
# True
print(r.hexists('hash1', 'test2'))
# False
print(r.hdel('hash1', 'k1'))
# 1
print(r.hgetall('hash1'))
# {'test1': 'val_1', 'k3': 'v3', 'k2': 'v2'}
print(r.hlen('hash1'))
# 3
r.zadd("zset_name", "a1", 6, "a2", 2,"a3",5)
r.zadd('zset_name1', a1=7,b1=10, b2=5)

# 获取两个有序集合的交集并放入dest集合,如果遇到相同值不同分数,则按照aggregate进行操作
# aggregate的值为: SUM MIN MAX
r.zinterstore("zset_name2",("zset_name1","zset_name"),aggregate="MAX")
print(r.zscan("zset_name2"))

亚洲城ca88手机版官网 1

  1. spop(name) 从集合的左侧移除二个要素,并将其归来

结果:

#批量设置值
r.mset(name1='zhangsan', name2='lisi')
#或
r.mget({"name1":'zhangsan', "name2":'lisi'})

 

#同lpush,但每个新的元素都添加到列表的最右边
rpush(name,values)

缓慢解决参考链接:

法定推荐应用StrictRedis方法。

yum install firefox

管制对3个redis
server的有着连接,防止每一次塑造,释放连接的花费。暗中同意,各样redis实例都会维护二个谈得来的连接池,能够直接创立一个连接池,作为参数字传送给redis,这样能够兑现多个redis实例共享3个连接池。

出现那几个主题素材是因为yum在安装包的进度中,固然一度联网,可是迫于解析远程包管理库对应的域名,所以大家只必要在网络布局中增多上DNS对应的ip地址就能够。

  1. sadd(name,values) 给name对应的晤面中添澳成分

亚洲城ca88手机版官网 2

  1. append 在name对应的值前边扩张内容
  1. rename(src, dst) 重命名
# 在name对应的列表的某一个值前或后插入一个新值
 linsert(name, where, refvalue, value))
r.linsert("list_name","BEFORE","2","SS")#在列表内找到第一个元素2,在它前面插入SS

'''参数:
   name: redis的name
   where: BEFORE(前)或AFTER(后)
   refvalue: 列表内的值
   value: 要插入的数据'''

二 Hash 操作

壹 STRAV4ING 字符串的操作

#根据字节获取子序列
getrange(key, start, end) 

r.set("name","zhangsan")
print(r.getrange("name",0,3))#输出:zhan
  1. strlen(name) 重回name对应值的字节长度
  1. zincrby(name, value, amount) 自增有序集中内value对应的分数
# 从一个列表取出最右边的元素,同时将其添加至另一个列表的最左边
#src 要取数据的列表
#dst 要添加数据的列表
  1. linsert 在name对应的列表的某三个值前或后插入三个新值
  1. hexists 检查name对应的hash是还是不是留存当前传回的key

#获得name对应的集纳的有所成员

# name对应的list元素的个数
llen(name)

print(r.llen("list_name"))
  1. zscore(name, value) 获取name对应有序集结中 value 对应的分数
  1. zrevrange(name, start, end, withscores=False,
    score_cast_func=float)
  1. zadd(name, args, *kwargs)

连接 Redis

其它常用操作

#赢得有序聚集内成分的数量

# 获取name对应值的等级次序

#自增mount对应的值,当mount不存在时,则创建mount=amount,否则,则自增,amount为自增数(整数)
incr(self, name, amount=1) 

print(r.incr("mount",amount=2))#输出:2
print(r.incr("mount"))#输出:3
print(r.incr("mount",amount=3))#输出:6
print(r.incr("mount",amount=6))#输出:12
print(r.get("mount")) #输出:12
#在Redis中设置值,默认不存在则创建,存在则修改
r.set('name', 'zhangsan')
'''参数:
  set(name, value, ex=None, px=None, nx=False, xx=False)
  ex,过期时间(秒)
  px,过期时间(毫秒)
  nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
  xx,如果设置为True,则只有name存在时,当前set操作才执行'''


r.get('name')
  1. exists(name) 检查评定redis的name是还是不是存在
  1. lindex 依照目录获取列表内成分
#在name对应的list中添加元素,只有name已经存在时,值添加到列表的最左边
 lpushx(name,value)
#在第一个name对应的集合中且不在其他name对应的集合的元素集合
r.sadd("set_name","aa","bb")
r.sadd("set_name1","bb","cc")
r.sadd("set_name2","bb","cc","dd")

print(r.sdiff("set_name","set_name1","set_name2"))#输出:{aa}
#获取name对应hash的所有键值
hgetall(name)

print(r.hgetall("dic_name"))

Set会集正是不允许再一次的列表

#分片获取元素
lrange(name, start, end)

print(r.lrange("list_name",0,-1))

redis中的List在内部存储器中遵守贰个name对应三个List来累积

# 将redis的有个别值移动到钦命的db下

  1. zunionstore(dest, keys, aggregate=None)

#根据* ?等通配符相称获取redis的name

  1. r.lset 对list中的某一个索引位置再次赋值
#删除name对应的list中的指定值
r.lrem(name, count, value) 
r.lrem("list_name",3,'ssss')

''' 参数:
  name: redis的name
  value: 要删除的值
  num:  num=0 删除列表中所有的指定值;
      num=2 从前到后,删除2个;
      num=-2 从后向前,删除2个'''

hvals 获取hash中保有的value的值

  1. hset name对应的hash中装置多个键值对(不设有,则创立,不然,修改)
  1. keys(pattern=’*’) 根据* ?等通配符相称获取redis的name
r.type(name)
  1. getset 设置新值,打字与印刷原值

②:Redis:是StrictRedis的子类,用于向后突出旧版的redis。

  1. sinter(keys, *args) 获取多个name对应会集的并集
  1. hincrby 自增hash中key对应的值,不存在则开创key=amount(amount为整数)

#率性获得1个redis的name(不删除)

dic={"a1":"aa","b1":"bb"}
r.hmset("dic_name",dic)

#hlen(name) 获取hash中键值对的个数
print(r.hlen("dic_name"))

#hkeys(name) 获取hash中所有的key的值
print(r.hkeys("dic_name"))

#hvals(name) 获取hash中所有的value的值
print(r.hvals("dic_name"))
#name对应的hash中设置一个键值对(不存在,则创建,否则,修改)
hset(name, key, value)
r.hset("dic_name","a1","aa")

在汇聚的底子上,为每成分排序,成分的排序须求基于其余贰个值来进展比较,所以,对于有序聚集,每二个要素有七个值,即:值和分数,分数专门用来做排序。

  1. zrange( name, start, end, desc=False, withscores=False,
    score_cast_func=float)
  1. zremrangebyscore(name, min, max) 依据分数范围删除
  1. expire(name ,time) 为有些name设置超时时间
r.hset("dic_name","a1","aa")
#在name对应的hash中根据key获取value
hget(name,key) 

print(r.hget("dic_name","a1"))#输出:aa
  1. mset 批量设置值

#基于name删除redis中的任意数据类型

  1. r.set 设置值

二.rpush 同lpush,但每个新的成分都增加到列表的最右面

# 从name对应的聚聚集随机获取numbers个成分
print(r.srandmember(“set_name2”,2))

# 获取多个name对应集合的并集
r.sadd("set_name","aa","bb")
r.sadd("set_name1","bb","cc")
r.sadd("set_name2","bb","cc","dd")

print(r.sinter("set_name","set_name1","set_name2"))#输出:{bb}
  1. setrange
    修改字符串内容,从钦定字符串索引开端向后替换,如若新值太长时,则向后增添
  1. lpop 移除列表的左侧第二个因素,重回值则是率先个要素
  1. rpushx
    在name对应的list中添澳成分,惟有name已经存在时,值增添到列表的最左边
  1. zinterstore(dest, keys, aggregate=None)
#自增hash中key对应的值,不存在则创建key=amount(amount为整数)
hincrby(name, key, amount=1)

print(r.hincrby("demo","a",amount=2))
#在name对应的值后面追加内容
append(name, value)

r.set("name","zhangsan")
print(r.get("name"))  #输出:'zhangsan
r.append("name","lisi")
print(r.get("name"))  #输出:zhangsanlisi

#从集结的入手移除二个成分,并将其回到

#根据索引获取列表内元素
lindex(name, index)

print(r.lindex("list_name",1))

#质量评定redis的name是不是留存

#赢得四个不改变聚集的并集并放入dest集结,别的同zinterstore,

三 List 操作

1:StrictRedis:完毕多数法定的授命

#赢得八个name对应的成团的并集,并将结果保存到dest对应的集纳中

  1. lpushx
    在name对应的list中添澳成分,唯有name已经存在时,值增添到列表的最左侧
  1. scard(name) 获取name对应的会集中的元素个数

 

#获取name对应有序集合中 value 对应的分数
print(r.zscore("zset_name","a1"))
  1. delete(*names) 依据name删除redis中的任性数据类型
#检查value是否是name对应的集合内的元素
sismember(name, value)
  1. incr 值的增进 amount为增多的值

#取得多个name对应的相会的并集
r.sunion(“set_name”,”set_name1″,”set_name2″)

#将某个元素从一个集合中移动到另外一个集合

redis中的Hash 在内部存款和储蓄器中接近于一个name对应三个dic来囤积

#删除name对应的有序集合中值是values的成员
r.zrem("zset_name","a1","a2")

hincrbyfloat(name, key, amount=1.0)

  1. zcard(name) 获取有序聚焦内成分的数量

8.sismember 反省value是不是是name对应的集合内的要素

#删除指定name对应的key所在的键值对
hdel(name,*keys)  

r.hdel("dic_name","a1")
  1. rpoplpush(src, dst)
    从二个列表抽出最右侧的成分,同时将其增多至另一个列表的最左侧

举例(连接池):

  1. llen name对应的list成分的个数
#设置新值,打印原值
getset(name, value) 

print(r.getset("name1","wangwu")) #输出:zhangsan
print(r.get("name1")) #输出:wangwu

#去除name对应的成团中的有个别值
print(r.srem(“set_name2″,”bb”,”dd”))

#批量获取
print(r.mget("name1","name2"))
#或
li=["name1","name2"]
print(r.mget(li))
import redis

#decode_responses=True 自动解码

r = redis.Redis(host='127.0.0.1',port=6379,password='123456',db=0,decode_responses=True) #默认数据库为0

r = redis.StrictRedis(host='10.10.2.14',port=6379,password='123456',decode_responses=True)

连接池:connection pool

老是格局:redis提供了二个艺术

  1. sunion(keys, *args) 获取三个name对应的汇聚的并集

四 Set 操作

#同zrange,集合是从大到小排序的

你或者感兴趣的稿子:

  • Python实现的redis分布式锁效能示例
  • Python操作Redis之设置key的逾期时间实例代码
  • python达成redis二种cas事务操作
  • Python
    用Redis简单达成布满式爬虫的章程
  • python脚本达成Redis未授权批量提权
  • 在Python中动用AOP达成Redis缓存示例
  • python笔记:mysql、redis操作方法
  • python操作redis的方法
  • Redis的Python客户端redis-py安装使用表达文书档案
  • Python与Redis的接连教程
  • Python读写Redis数据库操作示例

伍 有序集结 zset

  1. lrange 分片获取成分

6.

pool = redis.ConnectionPool(host='127.0.0.1',port=6379,password='123456',decode_responses=True)
r = redis.Redis(connection_pool=pool)
  1. zrem(name, values) 删除name对应的有序聚聚集值是values的分子

hlen 获取hash中键值对的个数

#检查name对应的hash是否存在当前传入的key
hexists(name, key)

print(r.hexists("dic_name","a1"))#输出:True
#获取name对应的集合中的元素个数
r.scard("set_name")
#在name对应的hash中批量设置键值对,mapping:字典
hmset(name, mapping) 

dic={"a1":"aa","b1":"bb"}
r.hmset("dic_name",dic)
print(r.hget("dic_name","b1"))#输出:bb
#获取有序集合中分数在[min,max]之间的个数
print(r.zcount("zset_name",1,5))

11.type 翻看类型

  1. hdel 删除钦点name对应的key所在的键值对
  1. hmget 在name对应的hash中赢得两个key的值
#移除列表内没有在该索引之内的值
ltrim(name, start, end)

r.ltrim("list_name",0,2)
#在name对应的list中添加元素,只有name已经存在时,值添加到列表的最右边
 rpushx(name,value)
#返回name对应值的字节长度(一个汉字3个字节)
r.set("name","zhangsan")
print(r.strlen("name")) #输出:8
  1. getrange 依据字节获取子系列
  1. smembers(name) 获取name对应的集合的兼具成员
  1. sunionstore(dest,keys, *args)
    获取七个name对应的集纳的并集,并将结果保存到dest对应的会集中
  1. zrank(name, value)、zrevrank(name, value)
  1. randomkey() 随机获取八个redis的name(不删除)
  1. zremrangebyrank(name, min, max) 根据相排版行范围删除

#传闻排行范围删除

  1. sdiff(keys, *args)
    在第3个name对应的集纳中且不在其余name对应的会集的因素会集
#修改字符串内容,从指定字符串索引开始向后替换,如果新值太长时,则向后添加
setrange(name, offset, value) 

r.set("name","zhangsan")
r.setrange("name",1,"z")
print(r.get("name")) #输出:zzangsan
r.setrange("name",6,"zzzzzzz")
print(r.get("name")) #输出:zzangszzzzzzz

#依赖分数范围删除

比方来讲(普通连接):

#对list中的某一个索引位置重新赋值
r.lset(name, index, varlue)

r.lset("list_name",0,"bbb")

# 为有个别name设置超时时间

  1. hgetall 获取name对应hash的兼具键值

不改变聚焦:

  1. r.lrem 删除name对应的list中的钦赐值
# 在name对应的list中添加元素,每个新的元素都添加到列表的最左边
lpush(name,values)

r.lpush("list_name",2)
r.lpush("list_name",3,4,5)#保存在列表中的顺序为5,4,3,2
  1. hget 在name对应的hash中根据key获取value
  1. srem(name, values) 删除name对应的汇集中的某个值
#自增有序集合内value对应的分数
r.zincrby("zset_name","a1",amount=2)#自增zset_name对应的有序集合里a1对应的分数
# 在name对应的hash中获取多个key的值
hmget(name, keys, *args) 

li=["a1","b1"]
print(r.hmget("dic_name",li))
print(r.hmget("dic_name","a1","b1"))
# 按照索引范围获取name对应的有序集合的元素
aa=r.zrange("zset_name",0,1,desc=False,withscores=True,score_cast_func=int)
print(aa)
'''参数:
  name  redis的name
  start  有序集合索引起始位置
  end   有序集合索引结束位置
  desc  排序规则,默认按照分数从小到大排序
  withscores 是否获取元素的分数,默认只获取元素的值
  score_cast_func 对分数进行数据转换的函数'''
# 在name对应的有序集合中添加元素
r.zadd("zset_name", 6,"a1", 2, "a2", 5,"a3")
#或
r.zadd('zset_name1', b1=10, b2=5)
  1. ltrim 移除列表内并未有在该索引之内的值(裁剪)
#获取value值在name对应的有序集合中的排行位置(从0开始)
print(r.zrank("zset_name", "a2"))

print(r.zrevrank("zset_name", "a2"))#从大到小排序

# 重命名

十.hincrbyfloat
自增hash中key对应的值,不存在则开创key=amount(amount为浮点数)

  1. move(name, db)) 将redis的某部值移动到钦赐的db下
  1. lpush 在name对应的list中添英镑素,每种新的要素都足够到列表的最右边

hkeys 获取hash中具备的key的值

  1. smove(src, dst, value) 将有个别成分从2个成团中活动到其它二个集结

自增hash中key对应的值,不设有则创立key=amount(amount为浮点数)

  1. mget(keys, *args) 批量获取
#移除列表的左侧第一个元素,返回值则是第一个元素
lpop(name) 

print(r.lpop("list_name"))
  1. srandmember(name, numbers) 从name对应的成团中随机获取numbers个要素
  1. type(name) 获取name对应值的类别

import redisc

  1. zcount(name, min, max) 获取有序聚聚焦分数在[min,max]时期的个数

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图