Beispiel #1
0
  def clear_cache(cls):
    cache_key = '%s*' %TAG_CACHE_KEY
    keys = cache.keys(cache_key)
    for key in keys:
      cache.delete(key)

    print("C ache clear Done")
Beispiel #2
0
    def to_index(cls):
        keys = cache.keys(pattern='%s*' %BASIC_TAG_PREFIX)
        for key in keys:
            cache.delete(key)

        items = cls.objects()
        for item in items:
            if len(item.name) > 1:
                key = '%s%s' %(BASIC_TAG_PREFIX, item.name)
                cache.set(name=key, value=item.score)
Beispiel #3
0
def sum_list(list):
  import random
  key = str(int(random.random()*100000))

  for l in list:
    cache.zincrby(name=key, value=l, amount=1)

  results = cache.zrevrangebyscore(name=key, min='-inf', max='+inf', withscores=True)
  cache.delete(key)
  return results
  
Beispiel #4
0
    def loads_from_pymongo(cls):
        tem_key = 'TEMP:KEY:'
        items = db.tags.find()
        for item in items:
            for tag in item['tags']:
                print("incr tag name %s" %tag)
                key = tem_key + tag
                cache.incr(name=key, amount=1)

        keys = cache.keys(pattern='%s*' %tem_key)
        for key in keys:
            name = key[9:].decode('utf-8')
            score = float(cache.get(key))
            cls.create_tag(name=name, score=score)
            cache.delete(key)
Beispiel #5
0
    def loads_basic_tags_to_cache(cls):
        from pymongo import Connection
        c = Connection()
        db = c.names

        tags = db.results.find()
        keys = cache.keys(pattern='%s*' %BASIC_TAG_PREFIX)
        for key in keys:
            cache.delete(key)

        for tag in tags:
            name = tag['name'].split(':')[1]
            key = BASIC_TAG_PREFIX + name
            value = tag['value']
            if int(value) > 1:
                cache.set(key, name)
Beispiel #6
0
    def see_top_tags(cls):
        keys = cache.keys(pattern='%s*' %BASIC_CACHE_PREFIX)
        set_name = 'TEMP:SET'
        for key in keys:
            value = float(cache.get(key))
            key = key[9:]
            cache.zadd(set_name, value, key)

        results = cache.zrevrange(name=set_name, start=0, num=LIMIT, withscores=True)
        results = [{'name': r[0].decode('utf-8'), 'value': r[1]} for r in results]
        from pymongo import Connection
        c = Connection()
        db = c.names
        if results:
            db.results.insert(results)
        cache.delete(set_name)
        return results
Beispiel #7
0
  def parse(cls, words):
    import random
    if isinstance(words, list):
      return []

    tmp_key = 'TMP:KEY:%s' %str(int(float(random.random()*100000)))
    results = []
    words = to_str(words)
    for text in seg_txt(words):
      if cls.is_keyword(text):
        results.append(text)

    for r in results:
      cache.zincrby(name=tmp_key, value=r, amount=1)

    keywords = cache.zrevrangebyscore(name=tmp_key, min='-inf', max='+inf', withscores=True)
    cache.delete(tmp_key)
    return [keyword[0].decode('utf-8') + u'__' + str(keyword[1]).decode('utf-8') for keyword in keywords]
Beispiel #8
0
    def create_action(self):
        cache_key = "WEIBO:HOT:%s" %self.user.sns_id
        cache.delete(cache_key)

        tmp_cache_key = "TEMP:WEIBO:HISTORY:%s:::" %self.user.sns_id

        weibo_history = self.user.weibo_history

        for text in weibo_history:
            terms = seg_txt(text.encode('utf-8'))
            for term in terms:
                index_key = '%s%s' %(BASIC_TAG_PREFIX, term)
                if cache.exists(index_key):
                    key = tmp_cache_key + term.decode('utf-8')
                    cache.incr(name=key, amount=1)

        keys = cache.keys(pattern="%s*" %tmp_cache_key)

        for key in keys:
            name = key.split(":::")[1]
            value = float(cache.get(key))
            cache.zadd(cache_key, value, name)
            cache.delete(key)

            tag = BasicTag.get_by_name(name=name)
            if not tag:
                continue

            relations = tag.friends
            score = tag.score

            for f in relations:
                items = f.split(':::')
                obj_name = items[0]
                obj_value = float(items[1])
                result = obj_value/50*value
                cache.zadd(cache_key, result, obj_name)

        results = cache.zrevrange(name=cache_key, start=0, num=30, withscores=True)
        tags = [result[0].decode('utf-8') +'__' + str(result[1]) for result in results]

        self.user.update(set__tags=tags)
Beispiel #9
0
    def calculate_relations(cls):
        items = cls.objects(friends__size=0)
        for item in items:
            try:
                name = item.name
                tag = db.tags.find_one({'name': name})
            except:
                continue

            if not tag:
                continue

            item_tags = tag['tags']

            for item_tag in item_tags:
                try:
                    cls.__calculate_relation(obj_tag=item_tag, item_name=name)
                except:
                    continue

                keys = cache.keys('TEMP:FRIENDS:%s*' %item_tag)
                for key in keys:
                    name = key.split(':::')[1]
                    cache.zadd('TEMP:%s' %item_tag, float(cache.get(key)), name)
                    cache.delete(key)

                results = cache.zrevrange(name='TEMP:%s' %item_tag, start=0, num=DEFAULT_LIMIT, withscores=True)
                cache.delete('TEMP:%s' %item_tag)

                for r in results:
                    name = r[0].decode('utf-8')
                    score = r[1]/1000
                    if name == item_tag:
                        continue

                    try:
                        obj = cls.objects.get(name=item_tag)
                        obj.update(add_to_set__friends='%s:::%f' %(name, score))
                        print("push %s:::%f to tag %s" %(name, score, item_tag))
                    except :
                        cls.create_tag(name=item_tag, friends=['%s:::%f' %(name, score),])
                        print("push %s:::%f to create tag %s" %(name, score, item_tag))
Beispiel #10
0
def delete_keys():
    keys = cache.keys(pattern='%s*' %BASIC_CACHE_PREFIX)
    print("keys count %d" %len(keys))
    for key in keys:
        cache.delete(key)
Beispiel #11
0
  def clear_cache(cls):
    keys = cache.keys('%s*' %cache_key)
    for key in keys:
      cache.delete(key)

    print("Delete Done")