WO2018153271A1 - 数据的推送方法、装置、存储介质及电子装置 - Google Patents
数据的推送方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- WO2018153271A1 WO2018153271A1 PCT/CN2018/075778 CN2018075778W WO2018153271A1 WO 2018153271 A1 WO2018153271 A1 WO 2018153271A1 CN 2018075778 W CN2018075778 W CN 2018075778W WO 2018153271 A1 WO2018153271 A1 WO 2018153271A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- pushed
- preset
- storage
- preset storage
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Definitions
- the present invention relates to the field of computers, and in particular to a method, device, storage medium and electronic device for pushing data.
- the existing exposure history storage scheme uses the cache (CACHE) method to directly store the identification information (docId) of the article.
- the storage scheme of the historical exposure data is to directly store the article docId by using a cache (CACHE) method
- FIG. 1 is a schematic diagram of storing historical exposure data according to the related art, as shown in FIG. 1 , the identifier of the historical exposure data.
- the information (docId) is stored in the cache (CACHE) area.
- CACHE cache
- the existing historical exposure data storage scheme uses the CACHE method to directly store the article identification information (docId).
- the user exposure history record is that there is a remote CACHE service node.
- the network timeout cannot return to the historical exposure record and the non-information feeds recommendation data is returned due to the remote reading of a single history record.
- the embodiment of the invention provides a data sending method, device, storage medium and electronic device, so as to at least solve the technical problem that the storage cost of the data that has been pushed in the related art is too high.
- a data sending method including: acquiring information to be pushed and identification information of the data to be pushed, wherein the identification information of the data to be pushed is used to uniquely identify the The data to be pushed is pushed in the case where the predetermined indication information is not stored in the target storage location in the preset storage space, wherein the target storage location includes the identifier information corresponding to the to-be-pushed data.
- the storage location, the predetermined indication information is used to indicate identification information of the data that has been pushed.
- a data sending apparatus including: an obtaining module, configured to acquire data to be pushed and identification information of the data to be pushed, wherein the data to be pushed is The identification information is used to uniquely identify the to-be-pushed data; the pushing module is configured to push the to-be-pushed data if the predetermined indication information is not stored in the target storage location in the preset storage space, wherein the target The storage location includes a storage location corresponding to the identification information of the data to be pushed, and the predetermined indication information is used to indicate identification information of the data that has been pushed.
- the identifier information to be pushed and the data to be pushed are obtained, wherein the identifier information of the data to be pushed is used to uniquely identify the data to be pushed; when the predetermined storage location is not stored in the target storage location in the preset storage space
- the data to be pushed is pushed, wherein the target storage location includes a storage location corresponding to the identification information of the data to be pushed, and the predetermined indication information is used to indicate the identification information of the pushed data.
- the predetermined indication information for indicating the identification information of the pushed data is stored in the storage location of the preset storage space, and when the predetermined indication information is not stored in the target storage location in the preset storage space, If the number of the to-be-pushed is not pushed, the data to be pushed is pushed out. In this way, whether the predetermined indication information is stored in the target storage location corresponding to the identification information of the data to be pushed indicates whether the data to be pushed is pushed or not.
- FIG. 1 is a schematic diagram of storing historical exposure data according to the related art
- FIG. 2 is a schematic diagram of an application environment of an optional data pushing method according to an embodiment of the present invention
- FIG. 3 is a schematic diagram of an optional method of pushing data according to an embodiment of the present invention.
- FIG. 4 is a schematic diagram of a method for a dynamic Bloom filter to query pushed data according to an embodiment of the present invention
- FIG. 5 is a schematic diagram of a dynamic bloom filter expansion method according to an embodiment of the present invention.
- FIG. 6 is a schematic diagram of a dynamic bloom filter release method according to an embodiment of the present invention.
- FIG. 7 is a schematic diagram of an optional data pushing device according to an embodiment of the present invention.
- FIG. 8 is a flowchart of a method of information feed refreshing according to an embodiment of the present invention.
- FIG. 9 is a schematic diagram of statistics of user mass exposure data according to an embodiment of the present invention.
- FIG. 10 is a schematic diagram of an electronic device in accordance with an embodiment of the present invention.
- the data pushing method may be, but is not limited to, being applied to an application environment as shown in FIG. 2, the terminal 202 is connected to the server 204 through the network 206, and the terminal 202 is configured to send the push to the server 204.
- a request for data, the request for pushing data is used to request the server 204 to push data for the terminal 202, the terminal 202 obtains data pushed by the server 204 from the server 204 via the network 206; the server 204 is set to respond to the request for pushing data sent by the terminal 202.
- the identification information of the data to be pushed is used for unique
- the data to be pushed is identified, and the target storage location includes a storage location corresponding to the identification information of the data to be pushed, and the predetermined indication information is used to indicate the identification information of the pushed data.
- the predetermined indication information for indicating the identification information of the pushed data is stored in the storage location of the preset storage space in the server 204, and the predetermined storage location in the preset storage space is not stored in the predetermined storage location.
- the indication information if the number of to-be-pushed is not pushed, the data to be pushed is pushed out, so that whether the predetermined indication information is stored on the target storage location corresponding to the identification information of the data to be pushed indicates that the to-be-push is to be pushed. Whether the data is pushed data, thereby reducing the storage cost of the pushed data, thereby overcoming the problem of excessive storage cost of the data pushed in the related art.
- the foregoing terminal may include, but is not limited to, at least one of the following: a mobile phone, a tablet computer, a notebook computer, a desktop PC, a digital television, and other hardware devices for area sharing.
- the above network may include, but is not limited to, at least one of the following: a wide area network, a metropolitan area network, and a local area network. The above is only an example, and the embodiment does not limit this.
- the server 204 is configured to: extract the first mapping information from the identifier information of the to-be-pushed data, where the first mapping information is used to indicate a storage location corresponding to the identifier information of the data to be pushed; When the storage location indicated by the first mapping information in the preset storage space does not store the predetermined indication information, the data to be pushed is pushed.
- the server 204 is configured to: extract a first hash value set corresponding to the identifier information of the data to be pushed, where the first hash value set includes the first preset number. a hash value, each of the first predetermined number of hash values corresponding to a storage location in the target storage location; storage of each hash value indicated in the first hash value set If the first preset value is not stored in the location, the data to be pushed is pushed.
- the server 204 is configured to: traverse one or more first preset storage blocks according to the storage time recorded in the one or more first preset storage blocks, where the preset storage space Include one or more first preset storage blocks; if there is no first preset storage block in the target storage location where the predetermined indication information is stored in the one or more first preset storage blocks Pushing the data to be pushed.
- the server 204 is configured to: update the preset storage space according to the identification information of the data to be pushed.
- the server 204 is configured to: extract the second mapping information from the identifier information of the to-be-pushed data, where the second mapping information is used to indicate a storage location corresponding to the identifier information of the data to be pushed; Setting a value stored in the storage location indicated by the second mapping information in the preset storage space as a second preset value; storing the push time of the data to be pushed to the first preset storage location of the preset storage space and The value stored in the storage location is incremented by one, wherein the second preset storage location is used to store the amount of pushed historical data recorded in the preset storage space.
- the server 204 is configured to: obtain a second hash value set corresponding to the identifier information of the data to be pushed, where the second hash value set includes the second preset number. a hash value, each of the second preset number of hash values corresponding to a storage location in the preset storage space; a storage location indicated by each hash value in the second hash value set The stored values are all set to the second preset value.
- the server 204 is configured to: when the storage time recorded in the one or more first preset storage blocks is the closest to the current time, the second preset in the first preset storage block If the value stored in the storage location does not reach the first preset threshold, the storage time recorded in the one or more first preset storage blocks is the first preset storage block that is closest to the current time.
- the value stored in the storage location indicated by the second mapping information is set to the second preset value, wherein the preset storage space includes the one or more first preset storage blocks.
- the server 204 is further configured to: when the storage time recorded in the one or more first preset storage blocks is the second in the first preset storage block that is closest to the current time, When the value stored in the preset storage location reaches the first preset threshold, the second preset storage block is allocated in the preset storage space; and the storage location indicated by the second mapping information in the second preset storage block is stored. The value of the value is set to the second preset value.
- the server 204 is further configured to: when the number of the one or more first preset storage blocks reaches a second preset threshold, release the one or more The storage space of the first preset storage block having the largest difference between the storage time and the current time recorded in a preset storage block.
- the server 204 is further configured to: traverse one or more first preset storage blocks according to the storage time recorded in the one or more first preset storage blocks, where the preset storage The space includes one or more first preset storage blocks; and releasing the first preset storage blocks recorded in the one or more first preset storage spaces that are earlier than the preset time.
- a method for pushing data includes:
- the identifier information of the data to be pushed and the data to be pushed is obtained, where the identifier information of the data to be pushed is used to uniquely identify the data to be pushed;
- the pushing method of the foregoing data may be, but is not limited to, being applied to a scenario in which the server pushes data to the client.
- the above client may be, but is not limited to, various types of software, for example, utility software (eg, browser, weather calendar software, etc.), news reading software, instant messaging software, community space software, game software, etc. .
- utility software eg, browser, weather calendar software, etc.
- news reading software e.g., instant messaging software, community space software, game software, etc.
- it may be, but is not limited to, being applied to the scenario in which the information information is refreshed in the browser, or may be, but is not limited to, being applied to the scenario in which the news reading software pushes the news to implement effective push of data.
- the above is only an example, and is not limited in this embodiment.
- the foregoing preset storage space may be designed in the form of a Bloom filter.
- each of the non-negative integers 0 to N corresponds to a storage location in the Bloom filter, and k hashes are applied to the identification information of the pushed data (hash) Value, k is a positive integer, respectively find the corresponding storage location of the k hash values in the Bloom filter, and set the bit value stored in the found storage location to the above predetermined indication information (for example: When the bit is 1), when the information to be pushed and the identification information of the data to be pushed are obtained, the hash information of the data to be pushed is taken as k hash values, and k hashes corresponding to the identification information of the data to be pushed are found from the preset storage space.
- the storage location being the target storage location
- the bit value stored in the found target storage location is the predetermined indication information, indicating that the to-be-pushed data has been pushed, then the location is not pushed.
- the data to be pushed is filtered out. If the bit value stored in the found target storage location is not the above predetermined indication information, it indicates that the data to be pushed is not pushed, then the push is pushed. Push data.
- the foregoing predetermined indication information is used to indicate the identification information of the pushed data, wherein the form of the predetermined indication information may be, but is not limited to, a predetermined value (for example, set to 1). Or a predetermined mark, or information that satisfies a predetermined rule (for example, a numerical value that is sequentially incremented), and the like. It should be noted that the form of the foregoing predetermined indication information is only an optional example in the embodiment, and the predetermined indication information may be any form of indication information, which is not limited in this embodiment.
- the acquired data to be pushed is not pushed, and may be, but is not limited to, the data to be pushed. It is deleted from the data pool to be pushed. It is also possible to add a specified tag to the data to be pushed, which is used to indicate the data that has been pushed when the data is pushed, and is not pushed.
- the predetermined indication information for indicating the identifier information of the pushed data is stored in the storage location of the preset storage space, and the predetermined indication information is not stored in the target storage location in the preset storage space.
- the data to be pushed is pushed out.
- whether the predetermined indication information is stored in the target storage location corresponding to the identification information of the data to be pushed indicates whether the data to be pushed is The data that has been pushed, thereby reducing the storage cost of the pushed data, thereby overcoming the problem of excessive storage cost of the data pushed in the related art.
- the predetermined indication information for indicating the identifier information of the pushed data is stored in the preset storage space, so that the storage information of the preset storage space can be effectively reduced, and the storage cost of the pushed data is reduced.
- the predetermined indication information for storing only the identification information indicating the pushed data in the storage space effectively reduces the storage information of the preset storage space, reduces the storage cost of the pushed data, and makes the reading
- the amount of data in the history record becomes smaller, thereby avoiding the phenomenon that the data cannot be refreshed, and thus the infinite refresh of the recommended data is realized.
- pushing the data to be pushed includes:
- the first mapping information is extracted from the identifier information of the to-be-pushed data, where the first mapping information is used to indicate a storage location corresponding to the identifier information of the data to be pushed;
- the manner of extracting the first mapping information from the identifier information of the data to be pushed may be, but is not limited to, obtaining a hash value of the identifier information of the data to be pushed, and the extracted hash value may be multiple.
- the hash values form a hash value set.
- the first hash value set corresponding to the first preset number of hash values corresponding to the identifier information of the data to be pushed is corresponding, and each of the first preset number of hash values corresponds to the hash value.
- pushing the data to be pushed includes:
- the order of traversing the first preset storage block according to the storage time may be preset, and may be the first preset storage block from the first block (ie, the first preset storage with the latest storage time).
- the block) starts traversing, or can also traverse from the last block of the first preset memory block (ie, the first preset memory block with the earliest storage time).
- the preset storage space may be, but not limited to, designed as a dynamic Bloom filter, and the dynamic Bloom filter is used to query whether the data to be pushed is the pushed data, that is, using the dynamic cloth.
- the filter filters the exposure history, and can identify the identification information of the push data (for example, the article docId that needs to be recommended for exposure), and take k values according to the same hash value as when storing.
- the last piece of the first preset memory block (BF) storage area often stores the latest recommended data, and can be traversed from the last BF storage area, which can improve the traversal query efficiency. If all the hash values in the same BF are 1 in the query, it means that the article has been exposed. You do not need to repeat the exposure again. You need to filter it out. Otherwise, continue to query the previous block.
- FIG. 4 is a schematic diagram of a method for querying a pushed data by a dynamic Bloom filter according to an embodiment of the present invention.
- a news article docId takes k hash values, and traverses from the last BF block to the first.
- the preset storage space is allocated as one or more first preset storage blocks, so that the separately managed data can be separately managed, and the data management efficiency is improved.
- the data to be pushed if the data to be pushed is pushed, it indicates that the data to be pushed becomes the pushed data for the next data push, and the push history of the data to be pushed may be recorded to In the preset storage space, the update of the preset storage space is realized, thereby ensuring the real-time performance of the pushed data.
- the preset storage space may be updated in the following manner: extracting, from the identification information of the data to be pushed, a second storage location corresponding to the identifier information indicating the data to be pushed. Mapping information, and setting a value stored in the storage location indicated by the second mapping information in the preset storage space to a second preset value, and simultaneously storing the push time of the data to be pushed to the first preset storage of the preset storage space
- the location increases the value stored in the second preset storage location by one, wherein the second preset storage location is used to store the amount of pushed historical data recorded in the preset storage space.
- the second hash value set may be formed by the second preset number of hash values corresponding to the identifier information of the data to be pushed, and the second hash value set is used as the data to be pushed. Identifying the second mapping information extracted in the information, and recording the information of the second hash value set into the preset storage space.
- the second hash value set corresponding to the identifier information of the data to be pushed is obtained, where the second hash value set includes a second preset number of hash values, and the second preset number of hash values Each of the hash values corresponds to a storage location in the preset storage space, and the value stored in the storage location indicated by each hash value in the second hash value set is set to a second preset value.
- the article docId when storing the pushed data (for example, an information exposure article), according to the designed Bloom filter bit size, the article docId takes multiple hash values, and each hash value is mapped to the corresponding cloth. Long set the bit bit to 1 and store the current timestamp (that is, the storage time of the pushed data) and the accumulated number of article storage.
- the Bloom filter bit length space can be designed according to the massive data. The statistics of the number of refreshes of the user refresh information feeds takes a certain threshold as the size of the Bloom filter storage block, which can realize storage space allocation with higher efficiency.
- the preset storage space may be divided into one or more first preset storage blocks, and the information with the pushed data is stored to the first stored storage time that is closest to the current time.
- a storage upper limit may be set for each piece of the first preset storage block to store the pushed data, at the current first If the number of pushed data stored in the preset storage block does not reach the upper limit, the information of the data to be pushed is stored in the current first preset storage block.
- the value stored in the second preset storage location in the first preset storage block does not reach the first preset threshold. And setting a value stored in the storage location indicated by the second mapping information in the first preset storage block whose storage time recorded in the one or more first preset storage blocks is closest to the current time as a second preset value, where The preset storage space includes one or more first preset storage blocks.
- the allocation is performed in the preset storage space.
- the second preset storage block stores the information of the data to be pushed into the newly allocated second preset storage block. For example, when the value stored in the second preset storage location reaches the first preset threshold, the second preset storage block is allocated in the preset storage space, and the second mapping information in the second preset storage block is indicated. The value stored in the storage location is set to the second preset value.
- the dynamic expansion of the Bloom filter can be used to automatically expand a block of memory to continue to store data when the number of exposed articles of the user exceeds a broth filter. Crawler crawling, you can set an expansion limit of the number of Bloom filter storage blocks, which most users cannot reach.
- FIG. 5 is a schematic diagram of a dynamic Bloom filter expansion method according to an embodiment of the present invention.
- a Dynamic Bloom Filter (DBF) is composed of multiple BFs, each BF head.
- the recommendation time (recTime, which is equivalent to the storage time stored in the first preset storage location) and the number of articles (the size corresponding to the value stored in the second preset storage location) are included.
- the article is stored, it is judged whether the current storage block reaches the limited storage amount. If the storage limit number is reached and the number of blocks is less than the limit block number upper limit R, a new BF is reallocated.
- the article docId is taken as k hash values, and the bit position corresponding to k hash values in the current BF block is 1.
- the dynamic bloom filter expansion method may include the following steps:
- Step 1 Determine whether the storage quantity of the current storage block is full. If it is not full, take k hash values of the article docId and store the corresponding information into the current BF block, which may be k hash values in the BF block. The corresponding bit position is 1;
- Step 2 If the current block is full, it is determined whether the number of BF blocks in the current DBF has reached an upper limit, and if so, the first block BF block is released;
- Step 3 If the current BF block number does not reach the upper limit, continue to allocate a block of BF, and store the article docId.
- the storage space of the first stored first preset storage block may be released.
- the storage space of the first preset storage block having the largest difference between the storage time and the current time recorded in the block.
- S2 Release one or more first preset storage blocks recorded in the first preset storage space that are earlier than a preset time.
- the storage space of the preset storage block that times out may be periodically released, thereby improving the utilization rate of the preset storage space.
- the time of some blocks in the DBF has exceeded the preset time limit, the data remaining in the storage space has no effect, and the release release may be selected.
- the storage time of the first block of BF in DBF is the longest, and can be traversed in order from the first block. Since the time of each block of DBF is increased once, the traversal can be terminated when a block does not satisfy the elimination time. If the number of blocks in the DBF expansion has reached the upper limit, it will be eliminated from the longest time of the first block, and only one block will be eliminated at a time. This can achieve no repeated recommendation within a certain range.
- FIG. 6 is a schematic diagram of a dynamic bloom filter release method according to an embodiment of the present invention.
- the recTime of each block of the dynamic bloom filter DBF indicates the most recently stored recommended time.
- the traverse is traversed from the first block, and when the recTime of a certain block of BF exceeds the preset time, the BF block can be released; The number of blocks reaches the limit of the upper line, you can release the longest BF block of recTime, and redistribute a piece.
- the dynamic Bloom filter can be used to store historical exposure records in a lossy manner. Loss refers to the fact that some articles that are not in the historical exposure record are misjudged as being in the history because of the hash.
- the storage of historical exposure records can be achieved by controlling the acceptable false positive rate.
- the DBF related parameters are calculated by calculating the storage space of each Bloom filter BF block according to the total number of articles stored per block n and the acceptable false positive rate p. Number of optimal hash functions
- a solution for randomly outputting data can be designed to solve the problem that the data cannot be refreshed due to the failure of reading the DBF record.
- a specified number of information data can be randomly selected from the data pool and pushed to the user according to the specified number of subscripts, wherein the specified number of subscripts is based on the number of records that the user refreshes the feeds, and the average number of records is taken as the subscript.
- the data after the standard is used as a random starting data pool to minimize the user's ability to brush to duplicate content.
- the scheme using the dynamic Bloom filter occupies less storage space than the conventional scheme, reduces network time consumption, and has higher query efficiency.
- a method of storing, expanding, and releasing a dynamic Bloom filter comprising the steps of:
- Step 1 Read the exposure history record stored by the user, and query whether there is a timeout BF block, and release if it exists;
- Step 2 Take k different hash values for the article docId
- Step 3 Determine whether the current block is full, and if it is full, expand the capacity to re-allocate a BF;
- Step 4 mapping k hash values to k bits in the current BF block, and setting the corresponding bit bit to 1;
- Step 5 Store the current write time (that is, the storage time of the currently stored data to be pushed), and accumulate the number of articles in the current BF block.
- the method according to the above embodiment can be implemented by means of software plus a necessary general hardware platform, and of course, by hardware, but in many cases, the former is A better implementation.
- the technical solution of the present invention in essence or the contribution to the related art can be embodied in the form of a software product stored in a storage medium (such as ROM/RAM, disk, CD-ROM).
- the instructions include a number of instructions for causing a terminal device (which may be a cell phone, computer, server, or network device, etc.) to perform the methods described in various embodiments of the present invention.
- the device includes:
- the obtaining module 72 is configured to obtain the information to be pushed and the identification information of the data to be pushed, wherein the identifier information of the data to be pushed is used to uniquely identify the data to be pushed;
- the pushing module 74 is configured to push the data to be pushed when the predetermined indication information is not stored in the target storage location in the preset storage space, wherein the target storage location includes the storage corresponding to the identification information of the data to be pushed
- the location indication information is used to indicate identification information of the data that has been pushed.
- the pushing device of the foregoing data may be, but is not limited to, being applied to a scenario in which the server pushes data to the client.
- the above client may be, but is not limited to, various types of software, for example, utility software (eg, browser, weather calendar software, etc.), news reading software, instant messaging software, community space software, game software, etc. .
- utility software eg, browser, weather calendar software, etc.
- news reading software e.g., instant messaging software, community space software, game software, etc.
- it may be, but is not limited to, being applied to the scenario in which the information information is refreshed in the browser, or may be, but is not limited to, being applied to the scenario in which the news reading software pushes the news to implement effective push of data.
- the above is only an example, and is not limited in this embodiment.
- the foregoing preset storage space may be designed in the form of a Bloom filter.
- each of the non-negative integers 0 to N corresponds to a storage location in the Bloom filter, and k hash values are used for the identification information of the pushed data, k
- find the corresponding storage location of the k hash values in the Bloom filter find the bit value stored in the found storage location to the above predetermined indication information (for example, set to 1), when obtained
- the identification information of the data to be pushed is taken as k hash values, and the storage location indicated by the k hash values corresponding to the identification information of the data to be pushed is found from the preset storage space.
- the storage location is the target storage location. If the bit value stored in the found target storage location is the predetermined indication information, it indicates that the data to be pushed has been pushed, then the data to be pushed is not pushed, and the data is filtered. If the bit value stored in the found target storage location is not all of the foregoing predetermined indication information, it indicates that the to-be-pushed data has not been pushed, then the to-be-pushed data is pushed.
- the foregoing predetermined indication information is used to indicate the identification information of the pushed data, wherein the form of the predetermined indication information may be, but is not limited to, a predetermined value (for example, set to 1). Or a predetermined mark, or information that satisfies a predetermined rule (for example, a numerical value that is sequentially incremented), and the like. It should be noted that the form of the foregoing predetermined indication information is only an optional example in the embodiment, and the predetermined indication information may be any form of indication information, which is not limited in this embodiment.
- the acquired data to be pushed is not pushed, and may be, but is not limited to, the data to be pushed. It is deleted from the data pool to be pushed. It is also possible to add a specified tag to the data to be pushed, which is used to indicate the data that has been pushed when the data is pushed, and is not pushed.
- the predetermined indication information for indicating the identifier information of the pushed data is stored in the storage location of the preset storage space, and the predetermined indication information is not stored in the target storage location in the preset storage space.
- the data to be pushed is pushed out.
- whether the predetermined indication information is stored in the target storage location corresponding to the identification information of the data to be pushed indicates whether the data to be pushed is The data that has been pushed, thereby reducing the storage cost of the pushed data, thereby overcoming the problem of excessive storage cost of the data pushed in the related art.
- the predetermined indication information for indicating the identifier information of the pushed data is stored in the preset storage space, so that the storage information of the preset storage space can be effectively reduced, and the storage cost of the pushed data is reduced.
- the predetermined indication information for storing only the identification information indicating the pushed data in the storage space effectively reduces the storage information of the preset storage space, reduces the storage cost of the pushed data, and makes the reading
- the amount of data in the history record becomes smaller, thereby avoiding the phenomenon that the data cannot be refreshed, and thus the infinite refresh of the recommended data is realized.
- the push module 74 includes:
- a first extracting unit configured to extract first mapping information from the identification information of the data to be pushed, wherein the first mapping information is used to indicate a storage location corresponding to the identification information of the data to be pushed;
- the first pushing unit is configured to push the data to be pushed if the storage location indicated by the first mapping information in the preset storage space does not store the predetermined indication information.
- the first extraction unit is configured to: extract a first hash value set corresponding to the identifier information of the data to be pushed, where the first hash value set includes the first preset a hash value of the quantity, each of the first preset number of hash values corresponding to a storage location in the target storage location; the first push unit is set to: when in the first hash value set In the case where the storage location indicated by each hash value does not store the first preset value, the data to be pushed is pushed.
- the manner in which the first extracting unit extracts the first mapping information from the identifier information of the data to be pushed may be, but is not limited to, obtaining a hash value of the identifier information of the data to be pushed, and extracting the hash.
- a value can be multiple hash values that make up a collection of hash values.
- the push module 74 includes:
- traversing unit configured to traverse one or more first preset storage blocks according to storage time recorded in one or more first preset storage blocks, wherein the preset storage space includes one or more first pre-schedules Set a storage block;
- the second pushing unit is configured to push the data to be pushed if there is no first preset storage block in which the predetermined indication information is stored in the target storage location in the one or more first preset storage blocks.
- the order of traversing the first preset storage block according to the storage time may be preset, and may be the first preset storage block from the first block (ie, the first preset storage with the latest storage time).
- the block) starts traversing, or can also traverse from the last block of the first preset memory block (ie, the first preset memory block with the earliest storage time).
- the preset storage space may be, but not limited to, designed as a dynamic Bloom filter, and the dynamic Bloom filter is used to query whether the data to be pushed is the pushed data, that is, using the dynamic cloth.
- the filter filters the exposure history, and can identify the identification information of the push data (for example, the article docId that needs to be recommended for exposure), and take k values according to the same hash value as when storing.
- the last piece of the first preset memory block (BF) storage area often stores the latest recommended data, and can be traversed from the last BF storage area, which can improve the traversal query efficiency. If all the hash values in the same BF are 1 in the query, it means that the article has been exposed. You do not need to repeat the exposure again. You need to filter it out. Otherwise, continue to query the previous block.
- FIG. 4 is a schematic diagram of a method for querying a pushed data by a dynamic Bloom filter according to an embodiment of the present invention.
- a news article docId takes k hash values, and traverses from the last BF block to the first.
- BF block if a block in the middle satisfies all the k corresponding bit bits, it means that the article hits the historical exposure record, that is, the data has been pushed and needs to be filtered; if all blocks are still missed after traversing, it means Articles are not in historical exposure records and can be pushed to users.
- the preset storage space is allocated as one or more first preset storage blocks, so that the separately managed data can be separately managed, and the data management efficiency is improved.
- the above device further includes:
- An update module configured to update the preset storage space according to the identification information of the data to be pushed.
- the data to be pushed if the data to be pushed is pushed, it indicates that the data to be pushed becomes the pushed data for the next data push, and the push history of the data to be pushed may be recorded to In the preset storage space, the update of the preset storage space is realized, thereby ensuring the real-time performance of the pushed data.
- the update module includes:
- a second extraction unit configured to extract second mapping information from the identification information of the data to be pushed, wherein the second mapping information is used to indicate a storage location corresponding to the identification information of the data to be pushed;
- a setting unit configured to set a value stored in the storage location indicated by the second mapping information in the preset storage space to a second preset value
- the processing unit is configured to store the push time of the data to be pushed to the first preset storage location of the preset storage space and increase the value stored in the second preset storage location by one, wherein the second preset storage location Used to store the amount of pushed historical data recorded in the preset storage space.
- the second extraction unit is configured to: obtain a second hash value set corresponding to the identifier information of the data to be pushed, where the second hash value set includes the second preset a hash value of the quantity, each of the second preset number of hash values corresponding to a storage location in the preset storage space; the setting unit is set to: each of the second hash value set The value stored in the storage location indicated by the hash value is set to the second preset value.
- the second hash value set may be formed by the second preset number of hash values corresponding to the identifier information of the data to be pushed, and the second hash value set is used as the data to be pushed. Identifying the second mapping information extracted in the information, and recording the information of the second hash value set into the preset storage space.
- the setting unit is configured to: store the second preset storage location in the first preset storage block whose storage time is closest to the current time recorded in the one or more first preset storage blocks The storage location indicated by the second mapping information in the first preset storage block closest to the current time in the storage time recorded in the one or more first preset storage blocks, if the value does not reach the first preset threshold
- the stored value is set to a second preset value, wherein the preset storage space includes one or more first preset storage blocks.
- the preset storage space may be divided into one or more first preset storage blocks, and the information of the data to be pushed is stored to the first pre-recorded storage time that is closest to the current time.
- the setting unit is further configured to: when the value stored in the second preset storage location reaches the first preset threshold, allocate the second preset storage block in the preset storage space; The value stored in the storage location indicated by the second mapping information in the second preset storage block is set to a second preset value.
- the configuration object may be updated by downloading the complete configuration information corresponding to the configuration object to be updated.
- the complete configuration information may be, but is not limited to, being optimally compressed. If the configuration information is compressed information, the downloaded complete configuration information is decompressed, and the decompressed file is used as the updated configuration. The configuration file for the object.
- the transmission protocol for downloading the second configuration file may be, but is not limited to, a TCP protocol. Other protocols may also be used.
- the second configuration file may be downloaded using a proprietary protocol.
- the setting unit is further configured to: when the second preset storage block is allocated in the preset storage space, when the number of the one or more first preset storage blocks reaches a second preset threshold In this case, the storage space of the first preset storage block having the largest difference between the storage time and the current time recorded in the one or more first preset storage blocks is released.
- the allocation is performed in the preset storage space.
- the second preset storage block stores the information of the data to be pushed into the newly allocated second preset storage block.
- the device further includes:
- the release module is configured to release the first preset storage block whose storage time is less than the preset time recorded in the one or more first preset storage spaces.
- the storage space of the preset storage block that times out may be periodically released, thereby improving the utilization rate of the preset storage space.
- the time of some blocks in the DBF has exceeded the preset time limit, the data remaining in the storage space has no effect, and the release release may be selected.
- the storage time of the first block of BF in DBF is the longest, and can be traversed in order from the first block. Since the time of each block of DBF is increased once, the traversal can be terminated when a block does not satisfy the elimination time. If the number of blocks in the DBF expansion has reached the upper limit, it will be eliminated from the longest time of the first block, and only one block will be eliminated at a time. This can achieve no repeated recommendation within a certain range.
- FIG. 6 is a schematic diagram of a dynamic bloom filter release method according to an embodiment of the present invention.
- the recTime of each block of the dynamic bloom filter DBF represents the most recently stored recommended time.
- the traverse is traversed from the first block, and when the recTime of a certain block of BF exceeds the preset time, the BF block can be released; The number of blocks reaches the limit of the upper line, you can release the longest BF block of recTime, and redistribute a piece.
- the application environment of the embodiment of the present invention may be, but is not limited to, the application environment in the first embodiment, which is not described in this embodiment.
- An embodiment of the present invention provides an optional specific application example for implementing the pushing method of the foregoing data.
- the foregoing update method of the configuration object may be, but is not limited to, being applied to a scenario in which the server pushes data for the client.
- a method for implementing an infinite refresh of the information feeds includes: the user refreshes or pulls down the information feeds; recommends the data from the data pool and uses the dynamic Bloom filter query to filter the historical data that the user has exposed; The upcoming information feeds data to the dynamic Bloom filter and return the data to the client display.
- the dynamic Bloom filter consists of multiple Bloom filter blocks with timestamps and counts, including storage, dynamic expansion, dynamic release, and query filtering.
- the Bloom filter block size is designed based on the massive user behavior data, and the number of Bloom filter blocks is dynamically adjusted in real time according to the number of articles in which the information user refreshes the feeds.
- the invention solves the bad experience that the information feeds increase repeatedly with the number of users and the number of refreshes, and the articles appear repeatedly and cannot refresh the data, and the cost is greatly reduced, and the information feeds are infinitely refreshed.
- FIG. 8 is a flowchart of a method for refreshing an information feeds according to an embodiment of the present invention. The process includes the following steps:
- Step S801 the user refreshes or pulls down the information feeds
- the information feeds page refreshes or pulls down more information data when the user refreshes once, the operation refreshes or continues to pull down, the information feeds data is triggered to be loaded.
- Step S802 recommend data from the data pool and filter the historical data that the user has exposed by using a dynamic Bloom filter
- the recommended data is obtained from the data pool, and the recommended data article docId is taken as k hash values, and the dynamic Bloom filter is used to query whether the information corresponding to the k hash values is in the exposure history, and if so, the filter is filtered.
- User history data that has been exposed to prevent duplicate recommendations.
- Step S803 storing the information information to be recommended to the dynamic Bloom filter and returning the data to the client display;
- the upcoming exposure data needs to be stored, and the data article docId is taken as k hash values and stored in the BF block of the dynamic bloom filter.
- each block when the dynamic Bloom filter is implemented, each block stores a total number of articles n and an acceptable false positive rate p to calculate each Bloom filter BF block space.
- the statistics of the user's massive exposure data are shown in Figure 9.
- the average number of user records per day is concentrated in 1-70 articles, 54%, 70-120 accounts for 11%, and 120-200 accounts for 10%.
- f DBF (m, k, n, r) 1 - (1 - 0.5%) r .
- the average number of exposures for users in the three days is 200, and the false positive rate is 1.5%.
- the cost is reduced by 66%, and the network time is reduced.
- a random method of specifying a subscript can be used to avoid the occurrence of the above problem, that is, by randomly counting the average user exposure as a random starting subscript of the data pool exposure number, the data is randomly selected, so that the Feeds data cannot be refreshed. And try to reduce the user's brush to duplicate content.
- the electronic device may include one or more (only one is shown) processor 1001.
- the memory 1003, and the transmission device 1005, as shown in FIG. 10, may further include an input and output device 1007.
- the memory 1003 can be used to store a computer program and a module, such as a data loading method and a program instruction/module corresponding to the device in the embodiment of the present invention.
- the processor 1001 is configured to run a software program and a module stored in the memory 1003. Thereby performing various functional applications and data processing, that is, implementing the above data loading method.
- the memory 1003 may include a high speed random access memory, and may also include non-volatile memory such as one or more magnetic storage devices, flash memory, or other non-volatile solid state memory.
- memory 1003 can further include memory remotely located relative to processor 1001, which can be connected to the terminal over a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
- the above-mentioned transmission device 1005 is used to receive or transmit data via a network, and can also be used for data transmission between a processor and a memory. Specific examples of the above network may include a wired network and a wireless network.
- the transmission device 1005 includes a Network Interface Controller (NIC) that can be connected to other network devices and routers via a network cable to communicate with the Internet or a local area network.
- the transmission device 205 is a Radio Frequency (RF) module for communicating with the Internet wirelessly.
- RF Radio Frequency
- the memory 1003 is used to store an application.
- the processor 1001 can call the application stored in the memory 1003 through the transmission device 1005 to perform the following steps: acquiring the to-be-pushed data and the identification information of the data to be pushed, wherein the identification information of the data to be pushed is used to uniquely identify the data to be pushed; When the predetermined indication information is not stored in the target storage location in the preset storage space, the data to be pushed is pushed, wherein the target storage location includes a storage location corresponding to the identification information of the data to be pushed, and the predetermined indication information is used to indicate that the Identification information of the pushed data.
- the processor 1001 is further configured to: first extract the first mapping information from the identifier information of the to-be-pushed data, where the first mapping information is used to indicate a storage location corresponding to the identifier information of the data to be pushed; when the preset storage space is used In the case where the storage location indicated by the first mapping information does not store the predetermined indication information, the data to be pushed is pushed.
- the processor 1001 is further configured to: perform a step of: extracting a first hash value set corresponding to the identifier information of the data to be pushed, where the first hash value set includes a first preset number of hash values, Each of the preset number of hash values corresponds to a storage location in the target storage location; when the storage location indicated by each hash value in the first hash value set does not store the first pre-stored In the case of a value, the data to be pushed is pushed.
- the processor 1001 is further configured to: traverse one or more first preset storage blocks according to the storage time recorded in the one or more first preset storage blocks, where the preset storage space includes one or more a first preset storage block; when there is no first preset storage block in which the predetermined indication information is stored in the target storage location in the one or more first preset storage blocks, the data to be pushed is pushed.
- the processor 1001 is further configured to perform the step of: updating the preset storage space according to the identification information of the data to be pushed.
- the processor 1001 is further configured to: extract the second mapping information from the identifier information of the to-be-pushed data, where the second mapping information is used to indicate a storage location corresponding to the identifier information of the data to be pushed;
- the value stored in the storage location indicated by the second mapping information is set to a second preset value; the push time of the data to be pushed is stored to the first preset storage location of the preset storage space and the second preset storage location is stored.
- the value is increased by one, wherein the second preset storage location is used to store the amount of pushed historical data recorded in the preset storage space.
- the processor 1001 is further configured to: obtain a second hash value set corresponding to the identifier information of the data to be pushed, where the second hash value set includes a second preset number of hash values, Each of the two preset number of hash values corresponds to a storage location in the preset storage space; and the value stored in the storage location indicated by the second mapping information in the preset storage space is set to the second preset
- the value includes: setting a value stored in the storage location indicated by each hash value in the second hash value set to a second preset value.
- the processor 1001 is further configured to: when the storage time recorded in the one or more first preset storage blocks is the closest to the current time, the value stored in the second preset storage location is not When the first preset threshold is reached, storing the value stored in the storage location indicated by the second mapping information in the first preset storage block whose storage time is the closest to the current time in the one or more first preset storage blocks. Set to a second preset value, where the preset storage space includes one or more first preset storage blocks.
- the processor 1001 is further configured to: allocate a second preset storage block in a preset storage space; and set a value stored in the storage location indicated by the second mapping information in the second preset storage block as a second preset value.
- the processor 1001 is further configured to: when the number of the one or more first preset storage blocks reaches a second preset threshold, release the storage time recorded in the one or more first preset storage blocks The storage space of the first preset storage block having the largest difference from the current time.
- the processor 1001 is further configured to: traverse one or more first preset storage blocks according to the storage time recorded in the one or more first preset storage blocks, where the preset storage space includes one or more a first preset storage block; releasing a first preset storage block whose storage time is longer than a preset time recorded in one or more first preset storage spaces.
- a scheme of a data pushing method is provided. Through the realization, the technical effect is achieved, thereby solving the technical problem that the storage cost of the data that has been pushed in the related art is too high.
- FIG. 10 is merely illustrative, and the electronic device can be a smart phone (such as an Android mobile phone, an iOS mobile phone, etc.), a tablet computer, a palm computer, and a mobile Internet device (MID). Terminal equipment such as PAD.
- FIG. 10 does not limit the structure of the above electronic device.
- the electronic device may also include more or fewer components (such as a network interface, display device, etc.) than shown in FIG. 10, or have a different configuration than that shown in FIG.
- Embodiments of the present invention also provide a storage medium.
- a computer program is stored in the storage medium, wherein the computer program is set as a push method for executing data at runtime.
- the foregoing storage medium may be located on at least one of the plurality of network devices in the network shown in the foregoing embodiment.
- the storage medium is arranged to store program code for performing the following steps:
- the identifier information of the data to be pushed and the data to be pushed is obtained, where the identifier information of the data to be pushed is used to uniquely identify the data to be pushed;
- the storage medium is further arranged to store program code for performing the following steps:
- the first mapping information is extracted from the identifier information of the data to be pushed, where the first mapping information is used to indicate a storage location corresponding to the identifier information of the data to be pushed;
- the storage medium is further configured to store program code for performing the following steps: extracting a first hash value set corresponding to the identifier information of the data to be pushed, wherein the first hash value set includes the first number a preset number of hash values, each of the first preset number of hash values corresponding to a storage location in the target storage location; when each hash value in the first hash value set indicates In the case where the storage location does not store the first preset value, the data to be pushed is pushed.
- the storage medium is further configured to store program code for performing the following steps: traversing one or more first preset storage blocks according to the storage time recorded in the one or more first preset storage blocks, wherein The preset storage space includes one or more first preset storage blocks; and when there is no first preset storage block in which the predetermined indication information is stored in the target storage location in the one or more first preset storage blocks, the push is performed. Pending data.
- the storage medium is further arranged to store program code for performing the step of: updating the preset storage space according to the identification information of the data to be pushed.
- the storage medium is further configured to store program code for performing the following steps: extracting second mapping information from the identification information of the data to be pushed, wherein the second mapping information is used to indicate that the identification information of the data to be pushed corresponds to a storage location; storing a value stored in the storage location indicated by the second mapping information in the preset storage space as a second preset value; storing the push time of the data to be pushed to the first preset storage location of the preset storage space and The value stored in the second preset storage location is incremented by one, wherein the second preset storage location is used to store the number of pushed historical data recorded in the preset storage space.
- the storage medium is further configured to store program code for performing the following steps: acquiring a second hash value set corresponding to the identifier information of the data to be pushed, wherein the second hash value set includes the second quantity a preset number of hash values, each of the second preset number of hash values corresponding to a storage location in the preset storage space; a storage location indicated by the second mapping information in the preset storage space Setting the stored value to the second preset value includes setting the value stored in the storage location indicated by each hash value in the second hash value set to the second preset value.
- the storage medium is further configured to store program code for performing the following steps: when the storage time recorded in the one or more first preset storage blocks is closest to the current time in the first preset storage block If the value stored in the preset storage location does not reach the first preset threshold, the second preset storage block in which the storage time recorded in the one or more first preset storage blocks is closest to the current time is the second.
- the value stored in the storage location indicated by the mapping information is set to a second preset value, wherein the preset storage space includes one or more first preset storage blocks.
- the storage medium is further configured to store program code for performing the following steps: allocating a second preset storage block in the preset storage space; storing the storage location indicated by the second mapping information in the second preset storage block The stored value is set to the second preset value.
- the storage medium is further configured to store program code for performing the following steps: releasing one or more firsts when the number of the one or more first preset storage blocks reaches a second predetermined threshold The storage space of the first preset storage block having the largest difference between the storage time and the current time recorded in the preset storage block.
- the storage medium is further configured to store program code for performing the following steps: traversing one or more first preset storage blocks according to the storage time recorded in the one or more first preset storage blocks, wherein The preset storage space includes one or more first preset storage blocks; and the first preset storage block whose storage time recorded in the one or more first preset storage spaces is earlier than the preset time is released.
- the foregoing storage medium may include, but not limited to, a USB flash drive, a Read-Only Memory (ROM), a Random Access Memory (RAM), a mobile hard disk, and a magnetic memory.
- ROM Read-Only Memory
- RAM Random Access Memory
- a mobile hard disk e.g., a hard disk
- magnetic memory e.g., a hard disk
- the integrated unit in the above embodiment if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in the above-described computer readable storage medium.
- the technical solution of the present invention may be embodied in the form of a software product in the form of a software product, or the whole or part of the technical solution, which is stored in a storage medium, including
- the instructions are used to cause one or more computer devices (which may be a personal computer, server or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
- the disclosed client may be implemented in other manners.
- the device embodiments described above are merely illustrative.
- the division of the unit is only a logical function division.
- multiple units or components may be combined or may be Integrate into another system, or some features can be ignored or not executed.
- the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, unit or module, and may be electrical or otherwise.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
- each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据的推送方法、装置、存储介质及电子装置。其中,该方法包括:获取待推送数据以及待推送数据的标识信息,其中,待推送数据的标识信息用于唯一标识待推送数据;当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送待推送数据,其中,目标存储位置包括与待推送数据的标识信息对应的存储位置,预定指示信息用于指示已推送过的数据的标识信息。本发明解决了相关技术中已推送过的数据的存储成本过高的技术问题。
Description
本申请要求于2017年02月27日提交中国专利局、申请号为201710109224.X、发明名称“数据的推送方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本发明涉及计算机领域,具体而言,涉及一种数据的推送方法、装置、存储介质及电子装置。
现有曝光历史存储方案是利用缓存(CACHE)方式直接存储文章的标识信息(docId)。
在这个信息大爆发的时代,资讯的更新速度越来越迅速,人们对最新资讯的需求也越来越迫切,数据推送类的应用为用户推送数据时的效率和实时性成为了吸引用户的重要因素。用户在刷新资讯数据时如果一直重复看到相同的资讯或者无法刷新数据都将严重影响用户的留存率。因此,在为用户推送数据时,高效地将推送的历史曝光数据过滤掉就成为了维护用户的关键。
在相关技术中,历史曝光数据的存储方案是利用缓存(CACHE)方式直接存储文章docId,图1是根据相关技术的一种存储历史曝光数据的示意图,如图1所示,历史曝光数据的标识信息(docId)存储在缓存(CACHE)区域中,当数据(例如:资讯(Feeds))的用户数和刷新数过多时,会出现文章重复露出、刷新不出数据等不良体验,无法实现Feeds无限刷新的需求。其主要原因是因为现有历史曝光数据的存储方案是利用CACHE方式直接存储文章标识信息(docId),当用户刷新量过多时会导 致存储空间耗用过高使得成本急剧上升,出现存储溢出而淘汰旧曝光记录的现象,导致多数重复文章被推荐出。此外,用户曝光历史记录是存在远程CACHE服务节点,当存储量大时也会因远程读取单条历史记录过大而导致网络超时无法返回历史曝光记录和无资讯Feeds推荐数据返回。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据的推送方法、装置、存储介质及电子装置,以至少解决相关技术中已推送过的数据的存储成本过高的技术问题。
根据本发明实施例的一个方面,提供了一种数据的推送方法,包括:获取待推送数据以及所述待推送数据的标识信息,其中,所述待推送数据的标识信息用于唯一标识所述待推送数据;当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送所述待推送数据,其中,所述目标存储位置包括与所述待推送数据的标识信息对应的存储位置,所述预定指示信息用于指示已推送过的数据的标识信息。
根据本发明实施例的另一方面,还提供了一种数据的推送装置,包括:获取模块,被设置为获取待推送数据以及所述待推送数据的标识信息,其中,所述待推送数据的标识信息用于唯一标识所述待推送数据;推送模块,被设置为当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送所述待推送数据,其中,所述目标存储位置包括与所述待推送数据的标识信息对应的存储位置,所述预定指示信息用于指示已推送过的数据的标识信息。
在本发明实施例中,获取待推送数据以及待推送数据的标识信息,其中,待推送数据的标识信息用于唯一标识待推送数据;当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送待推送数据,其中,目标存储位置包括与待推送数据的标识信息对应的存储位置,预定指示信息用于指示已推送过的数据的标识信息。也就是说,预设存储空间的存储 位置上只存储了用于指示已推送过的数据的标识信息的预定指示信息,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,表示未推送过该待推送数则,则将该待推送数据推送出去,这样以来,利用待推送数据的标识信息对应的目标存储位置上是否存储了预定指示信息表示待推送数据是否是已推送过的数据,从而降低了已推送过的数据的存储成本,进而克服相关技术中已推送过的数据的存储成本过高的问题。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的一种存储历史曝光数据的示意图;
图2是根据本发明实施例的一种可选的数据的推送方法的应用环境示意图;
图3是根据本发明实施例的一种可选的数据的推送方法的示意图;
图4是根据本发明实施例的动态布隆过滤器查询已推送数据的方法的示意图;
图5是根据本发明实施例的动态布隆过滤器扩容方法的示意图;
图6是根据本发明实施例的动态布隆过滤器释放方法的示意图;
图7是根据本发明实施例的一种可选的数据的推送装置的示意图;
图8是根据本发明实施例的资讯Feeds刷新方法的流程图;
图9是根据本发明实施例的用户海量曝光数据的统计的示意图;以及
图10是根据本发明实施例的一种电子装置的示意图。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本发明实施例中,提供了一种上述数据的推送方法的实施例。作为一种可选的实施方式,该数据的推送方法可以但不限于应用于如图2所示的应用环境中,终端202通过网络206与服务器204连接,终端202被设置为向服务器204发送推送数据的请求,该推送数据的请求用于请求服务器204为终端202推送数据,终端202通过网络206从服务器204获取服务器204推送的数据;服务器204,被设置为响应终端202发送的推送数据的请求获取待推送数据以及待推送数据的标识信息,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送所述待推送数据;其中,待推送数据的标识信息用于唯一标识待推送数据,目标存储位置包括与待推送数据的标识信息对应的存储位置,预定指示信息用于指示已推送过的数据的标识信息。
在本实施例中,服务器204中预设存储空间的存储位置上只存储了用于指示已推送过的数据的标识信息的预定指示信息,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,表示未推送过该待推送数 则,则将该待推送数据推送出去,这样以来,利用待推送数据的标识信息对应的目标存储位置上是否存储了预定指示信息表示待推送数据是否是已推送过的数据,从而降低了已推送过的数据的存储成本,进而克服相关技术中已推送过的数据的存储成本过高的问题。
可选地,在本实施例中,上述终端可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、台式PC机、数字电视及其他进行区域共享的硬件设备。上述网络可以包括但不限于以下至少之一:广域网、城域网、局域网。上述只是一种示例,本实施例对此不做任何限定。
可选地,在本实施例中,服务器204被设置为:从待推送数据的标识信息中提取第一映射信息,其中,第一映射信息用于指示待推送数据的标识信息对应的存储位置;当所述预设存储空间中所述第一映射信息指示的存储位置未存储所述预定指示信息的情况下,推送所述待推送数据。
可选地,在本实施例中,服务器204被设置为:提取待推送数据的标识信息对应的第一哈希值集合,其中,第一哈希值集合中包括数量为第一预设数量的哈希值,第一预设数量的哈希值中的每一个哈希值对应了目标存储位置中的一个存储位置;当所述第一哈希值集合中的每个哈希值指示的存储位置未均存储所述第一预设值的情况下,推送所述待推送数据。
可选地,在本实施例中,服务器204被设置为:根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;当所述一个或者多个第一预设存储块中没有所述目标存储位置上存储了所述预定指示信息的第一预设存储块的情况下,推送所述待推送数据。
可选地,在本实施例中,服务器204被设置为:根据待推送数据的标识信息更新预设存储空间。
可选地,在本实施例中,服务器204被设置为:从待推送数据的标识信息中提取第二映射信息,其中,第二映射信息用于指示待推送数据的标 识信息对应的存储位置;将预设存储空间中第二映射信息指示的存储位置存储的值设置为第二预设值;将待推送数据的推送时间存储到预设存储空间的第一预设存储位置并将第二预设存储位置存储的值加一,其中,第二预设存储位置用于存储预设存储空间中记录的推送过的历史数据的数量。
可选地,在本实施例中,服务器204被设置为:获取待推送数据的标识信息对应的第二哈希值集合,其中,第二哈希值集合中包括数量为第二预设数量的哈希值,第二预设数量的哈希值中的每一个哈希值对应了预设存储空间中的一个存储位置;将第二哈希值集合中的每个哈希值指示的存储位置存储的值均设置为第二预设值。
可选地,在本实施例中,服务器204被设置为:当一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中所述第二预设存储位置存储的值未达到第一预设阈值的情况下,将所述一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中所述第二映射信息指示的存储位置存储的值设置为所述第二预设值,其中,所述预设存储空间包括所述一个或者多个第一预设存储块。
可选地,在本实施例中,服务器204还被设置为:当一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中所述第二预设存储位置存储的值达到所述第一预设阈值的情况下,在预设存储空间中分配第二预设存储块;将第二预设存储块中第二映射信息指示的存储位置存储的值设置为第二预设值。
可选地,在本实施例中,服务器204还被设置为:当所述一个或者多个第一预设存储块的数量达到第二预设阈值的情况下,释放所述一个或者多个第一预设存储块中记载的存储时间与当前时间的差值最大的第一预设存储块的存储空间。
可选地,在本实施例中,服务器204还被设置为:根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;释放一个或者多个 第一预设存储空间中记载的存储时间早于预设时间的第一预设存储块。
根据本发明实施例,提供了一种数据的推送方法,如图3所示,该方法包括:
S302,获取待推送数据以及待推送数据的标识信息,其中,待推送数据的标识信息用于唯一标识待推送数据;
S304,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送待推送数据,其中,目标存储位置包括与待推送数据的标识信息对应的存储位置,预定指示信息用于指示已推送过的数据的标识信息。
可选地,在本实施例中,上述数据的推送方法可以但不限于应用于服务器向客户端数据推送的场景中。其中,上述客户端可以但不限于为各种类型的软件,例如,实用工具软件(例如:浏览器、天气日历类软件等等)、新闻阅读软件、即时通讯软件、社区空间软件、游戏软件等。可选的,可以但不限于应用于在上述在浏览器中刷新资讯信息的场景中,或还可以但不限于应用于在上述新闻阅读软件推送新闻的场景中,以实现数据的有效推送。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述预设存储空间可以设计成布隆过滤器的形式。例如:在一个可选的实施方式中,非负整数0到N中的每一个数对应了布隆过滤器中的一个存储位置,对已推送过的数据的标识信息取k个哈希(hash)值,k为正整数,分别找到这k个hash值在布隆过滤器中对应的存储位置,将找到的存储位置上存储的比特(bit)值置位为上述预定指示信息(例如:置位为1),当获取到待推送数据以及待推送数据的标识信息时,对待推送数据的标识信息取k个hash值,从预设存储空间中找到待推送数据的标识信息对应的k个hash值指示的存储位置,该存储位置即上述目标存储位置,如果找到的目标存储位置上存储的bit值均为上述预定指示信息,则表示该待推送数据已经被推送过了,那么就不推送该待推送数据,将其过滤掉,如果找到的目标存储位置上存储的bit值不均为上述预定指示信息,则表示该待推送数据未被推送过,那么就推送该待 推送数据。
可选地,在本实施例中,上述预定指示信息用于指示已推送过的数据的标识信息,其中,预定指示信息的形式可以但不限于为预定的值(例如:置位为1),或者预定的标记,或者满足预定规则的信息(例如:依次递增的数值)等等。需要说明的是,上述预定指示信息的形式只是本实施例中的可选示例,预定指示信息可以是任何形式的指示信息,本实施例对此不做限定。
可选地,在本实施例中,当预设存储空间中的目标存储位置上存储了预定指示信息的情况下,则不推送获取的待推送数据,此时可以但不限于是将待推送数据从待推送的数据池中删除,也可以为该待推送数据添加指定的标记,用来表示该数据时已经推送过的数据,不再进行推送。
可见,通过上述步骤,预设存储空间的存储位置上只存储了用于指示已推送过的数据的标识信息的预定指示信息,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,表示未推送过该待推送数则,则将该待推送数据推送出去,这样以来,利用待推送数据的标识信息对应的目标存储位置上是否存储了预定指示信息表示待推送数据是否是已推送过的数据,从而降低了已推送过的数据的存储成本,进而克服相关技术中已推送过的数据的存储成本过高的问题。
进一步,在预设存储空间中只存储用于指示已推送过的数据的标识信息的预定指示信息,可以有效地减少预设存储空间的存储信息,在降低了已推送过的数据的存储成本的同时使得相同容量的预设存储空间中能够存储更多的已推送过的数据,从而避免出现存储溢出而淘汰旧曝光记录导致多数重复数据被推荐出的现象发生,进而实现了推荐数据无重复且成本更低。
此外,当已推送过的数据存储量大时会因远程读取单条历史记录过大而导致网络超时无法返回历史曝光记录和无推送数据返回,导致数据无法推送,资讯Feeds无法刷新,在预设存储空间中只存储用于指示已推送过 的数据的标识信息的预定指示信息,在有效地减少了预设存储空间的存储信息,降低了已推送过的数据的存储成本的同时,使得读取出的历史记录的数据量变小,从而避免出现无法刷新数据的现象,进而实现了推荐数据的无限刷新。
作为一种可选的方案,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送待推送数据包括:
S1,从待推送数据的标识信息中提取第一映射信息,其中,第一映射信息用于指示待推送数据的标识信息对应的存储位置;
S2,当预设存储空间中第一映射信息指示的存储位置未存储预定指示信息的情况下,推送待推送数据。
可选地,在本实施例中,从待推送数据的标识信息中提取第一映射信息的方式可以但不限于是获取待推送数据的标识信息的哈希值,提取的哈希值可以是多个哈希值组成一个哈希值集合。例如:提取待推送数据的标识信息对应的包括数量为第一预设数量的哈希值的第一哈希值集合,这些第一预设数量的哈希值中的每一个哈希值对应了目标存储位置中的一个存储位置。那么,可以通过第一哈希值集合中的每个哈希值指示的存储位置是否均存储第一预设值来表示预设存储空间中第一映射信息指示的存储位置是否存储了预定指示信息,当第一哈希值集合中的每个哈希值指示的存储位置未均存储第一预设值的情况下,推送待推送数据。
作为一种可选的方案,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送待推送数据包括:
S1,根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;
S2,当一个或者多个第一预设存储块中没有目标存储位置上存储了预定指示信息的第一预设存储块的情况下,推送待推送数据。
可选地,在本实施例中,根据存储时间遍历第一预设存储块的顺序可以预先设置,可以是从第一块第一预设存储块(即存储时间最晚的第一预设存储块)开始遍历,或者也可以从最后一块第一预设存储块(即存储时间最早的第一预设存储块)开始遍历。
作为一个可选的实施方式,预设存储空间可以但不限于设计为动态布隆过滤器,利用动态布隆过滤器查询待推送的数据是否是已推送过的数据,也就是说,利用动态布隆过滤器过滤曝光历史,可以对待推送数据的标识信息(例如:需要推荐曝光的文章docId)按与存储时相同的hash取值方式取k个值。最后一块第一预设存储块(BF)存储区往往存着最近的推荐数据,可以从最后一块BF存储区开始遍历,可提高遍历查询效率。查询时若所有hash值在同一个BF中对应位bit都为1,则表示该文章已经曝光过,此次不需要再重复曝光,需过滤掉,否则继续查询前一块。
图4是根据本发明实施例的动态布隆过滤器查询已推送数据的方法的示意图,如图4所示,一篇资讯文章docId取k个hash值,从最后一个BF块开始遍历至第一个BF块,或者从第一个BF块开始遍历至最后一个BF块,中间某块若满足k个对应位bit全为1,则表示这篇文章命中历史曝光记录,即已推送过该数据,需要过滤;若所有块遍历后仍未命中,则表示这篇文章不在历史曝光记录中,可推送至用户。
可见,通过上述步骤,将预设存储空间分配为一个或者多个第一预设存储块,从而可以实现已推送的数据的分别管理,提高了数据的管理效率。
作为一种可选的方案,在推送待推送数据之后,还包括:
S1,根据待推送数据的标识信息更新预设存储空间。
可选地,在本实施例中,如果推送了待推送数据,那么就表示该待推送数据对于下一次数据推送来说成为了已推送过的数据,可以将该待推送数据的推送历史记录到预设存储空间中,实现预设存储空间的更新,从而确保已推送过的数据的实时性。
可选地,在本实施例中,可以但不限于采用以下方式对预设存储空间进行更新:从待推送数据的标识信息中提取用于指示待推送数据的标识信息对应的存储位置的第二映射信息,并将预设存储空间中第二映射信息指示的存储位置存储的值设置为第二预设值,同时可以将待推送数据的推送时间存储到预设存储空间的第一预设存储位置并将第二预设存储位置存储的值加一,其中,第二预设存储位置用于存储预设存储空间中记录的推送过的历史数据的数量。
可选地,在本实施例中,可以通过待推送数据的标识信息对应的第二预设数量的哈希值组成第二哈希值集合,将第二哈希值集合作为从待推送数据的标识信息中提取的第二映射信息,并将第二哈希值集合的信息记录到预设存储空间中。例如:获取待推送数据的标识信息对应的第二哈希值集合,其中,第二哈希值集合中包括数量为第二预设数量的哈希值,第二预设数量的哈希值中的每一个哈希值对应了预设存储空间中的一个存储位置,并将第二哈希值集合中的每个哈希值指示的存储位置存储的值均设置为第二预设值。
作为一个可选的实施方式,存储已推送过的数据(例如:资讯曝光文章)时,根据设计的布隆过滤器位大小,将文章docId取多个hash值,每个hash值映射到对应布隆过滤器位bit中将其置位为1,并存储当前时间戳(即已推送过的数据的存储时间)和累加文章存储数量,其中,布隆过滤器位长度空间设计可以根据海量数据中统计用户刷新资讯Feeds的刷新数量分布取某个阈值作为布隆过滤器存储块的大小,可实现较高使用效率的存储空间分配。
可选地,在本实施例中,可以将预设存储空间划分为一个或者多个第一预设存储块,将带推送过数据的信息存储到记载的存储时间与当前时间最接近的第一预设存储块中第二映射信息对应的存储位置上,在存储待推送数据时,可以为每块第一预设存储块存储已推送过的数据的数量设置一个存储上限,在当前的第一预设存储块存储的已推送过的数据的数量未达 到该上限的情况下,将待推送数据的信息存储到当前的第一预设存储块中。例如:当一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中第二预设存储位置存储的值未达到第一预设阈值的情况下,将一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中第二映射信息指示的存储位置存储的值设置为第二预设值,其中,预设存储空间包括一个或者多个第一预设存储块。
可选地,在本实施例中,如果当前的第一预设存储块存储的已推送过的数据的数量已经达到了当前第一预设存储块的存储上限,则在预设存储空间中分配第二预设存储块,并将待推送数据的信息存储到新分配的第二预设存储块中。例如:当第二预设存储位置存储的值达到第一预设阈值的情况下,在预设存储空间中分配第二预设存储块,并将第二预设存储块中第二映射信息指示的存储位置存储的值设置为第二预设值。
作为一个可选的实施方式,对布隆过滤器的动态扩容可以用于当用户的曝光文章数超过一个布隆过滤器可存储数量时,自动扩容增加一块存储块继续存储数据,同时为防止机器爬虫爬取,可以设置一个布隆过滤器存储块数的扩容上限,大部分用户无法达到此上限。
图5是根据本发明实施例的动态布隆过滤器扩容方法的示意图,如图5所示,动态布隆过滤器(Dynamic Bloom Filter,简称为DBF)由多块BF组成,每块BF头部包括推荐时间(recTime,相当于上述第一预设存储位置存储的存储时间)和文章数(size,相当于上述第二预设存储位置存储的值)。当存储文章时,判断当前存储块是否达到限制的存储数量,若达到存储限制数量且块数小于限制块数上限R,则重新分配一块新的BF。将文章docId取k个hash值,间当前的BF块中k个hash值对应的bit位置为1。动态布隆过滤器扩容方法可以包括如下步骤:
步骤一、判断当前存储块的存储数量是否已满,若未满则对文章docId取k个hash值将其对应的信息存储至当前的BF块中,可以是将k个hash值在BF块中对应的bit位置为1;
步骤二、若当前块已满,则判断当前DBF中的BF块数是否已达到上限,若达到,则释放第一块BF块;
步骤三、若当前BF块数未达到上限,则继续分配一块BF,存储文章docId。
可选地,在本实施例中,如果当前的预设存储空间的存储空间已经达到了最大值,可以将最早存储的第一预设存储块的存储空间释放。例如:在预设存储空间中分配第二预设存储块之前,当一个或者多个第一预设存储块的数量达到第二预设阈值的情况下,释放一个或者多个第一预设存储块中记载的存储时间与当前时间的差值最大的第一预设存储块的存储空间。
作为一种可选的方案,还包括:
S1,根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;
S2,释放一个或者多个第一预设存储空间中记载的存储时间早于预设时间的第一预设存储块。
可选地,在本实施例中,对于存储时间超过一定时长的预设存储块,可以定时将超时的预设存储块的存储空间释放,从而提高预设存储空间的利用率。
作为一个可选的实施方式,当DBF中某些块的时间已超过预设的时间期限时,这部分数据再留在存储空间已无作用,可以选择淘汰释放。DBF中第一块BF的存储时间是最久的,可以从第一块开始依次遍历淘汰,由于DBF每块的时间是一次增大的,故当某块不满足淘汰时间即可终止遍历。若DBF中扩容时块数已达到上限,则从第一块时间最久远的开始淘汰,每次只淘汰一块,如此可以实现在一定范围内不出现重复推荐。
图6是根据本发明实施例的动态布隆过滤器释放方法的示意图,如图 6所示,动态布隆过滤器DBF每块的recTime表示最近存储的推荐时间。读取出动态布隆过滤器存储的曝光历史记录时,从第一块开始往后遍历,当某块BF的recTime超过预设的时间时,可以释放该BF块;在存储时,若分配的块数达到限制的上线,可以释放recTime最久的BF块,并重新分配一块。
在一个示例中,动态布隆过滤器可以是以一种有损的方式实现对历史曝光记录的存储的。有损指的是某些不在历史曝光记录中的文章因采用hash的方式而导致被误判为在历史记录中。在本示例中,可以通过控制可接受误判率来实现历史曝光记录的存储。DBF相关参数的计算方式为:根据每块存储文章总数n和可接受的误判率p来计算每个布隆过滤器BF块存储空间
最优hash函数的个数
一块BF块的误判率表示为f
BF(m,k,n)=p,多块BF块之间满足独立性,若扩容分配的BF数量为r,则某个元素在r个填满的DBF中误判率为f
DBF(m,k,n,r)=1-(1-f
BF(m,k,n))
r。通过合理的f
DBF的选取,可设计有效的动态布隆过滤器实现资讯Feeds的存储和查询。
可选地,在本实施例中,可以设计随机出数据的方案解决读取DBF记录失败导致的无法刷新出数据的问题。在该方案中,可以从数据池中按指定数量下标开始随机选择指定数量的资讯数据推送给用户,其中指定数量下标是依据用户刷新Feeds的记录数,取平均记录数作为下标,下标之后的数据作为随机起始数据池,可尽量减少用户刷到重复内容。
通过上述可选的实施方式,采用动态布隆过滤器的方案相比传统方案占用更少存储空间,减少网络耗时,且查询效率更高。
在一个可选示例中提供了一种动态布隆过滤器的存储、扩容和释放的 方法,该方法包括如下步骤:
步骤一、读取用户存储的曝光历史记录,查询是否存在超时BF块,存在则释放;
步骤二、对文章docId取k个不同hash值;
步骤三、判断当前块是否存满,若存满,则扩容重新分配一块BF;
步骤四、将k个hash值映射到当前BF块中的k个位,将对应的位bit置为1;
步骤五、存储当前写时间(即当前存储的待推送数据的存储时间),并累加当前BF块中的文章数。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例,还提供了一种用于实施上述数据的推送方法的数据的推送装置,如图7所示,该装置包括:
1)获取模块72,被设置为获取待推送数据以及待推送数据的标识信 息,其中,待推送数据的标识信息用于唯一标识待推送数据;
2)推送模块74,被设置为当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送待推送数据,其中,目标存储位置包括与待推送数据的标识信息对应的存储位置,预定指示信息用于指示已推送过的数据的标识信息。
可选地,在本实施例中,上述数据的推送装置可以但不限于应用于服务器向客户端数据推送的场景中。其中,上述客户端可以但不限于为各种类型的软件,例如,实用工具软件(例如:浏览器、天气日历类软件等等)、新闻阅读软件、即时通讯软件、社区空间软件、游戏软件等。可选的,可以但不限于应用于在上述在浏览器中刷新资讯信息的场景中,或还可以但不限于应用于在上述新闻阅读软件推送新闻的场景中,以实现数据的有效推送。上述仅是一种示例,本实施例中对此不做任何限定。
可选地,在本实施例中,上述预设存储空间可以设计成布隆过滤器的形式。例如:在一个可选的实施方式中,非负整数0到N中的每一个数对应了布隆过滤器中的一个存储位置,对已推送过的数据的标识信息取k个hash值,k为正整数,分别找到这k个hash值在布隆过滤器中对应的存储位置,将找到的存储位置上存储的bit值置位为上述预定指示信息(例如:置位为1),当获取到待推送数据以及待推送数据的标识信息时,对待推送数据的标识信息取k个hash值,从预设存储空间中找到待推送数据的标识信息对应的k个hash值指示的存储位置,该存储位置即上述目标存储位置,如果找到的目标存储位置上存储的bit值均为上述预定指示信息,则表示该待推送数据已经被推送过了,那么就不推送该待推送数据,将其过滤掉,如果找到的目标存储位置上存储的bit值不均为上述预定指示信息,则表示该待推送数据未被推送过,那么就推送该待推送数据。
可选地,在本实施例中,上述预定指示信息用于指示已推送过的数据的标识信息,其中,预定指示信息的形式可以但不限于为预定的值(例如:置位为1),或者预定的标记,或者满足预定规则的信息(例如:依次递增 的数值)等等。需要说明的是,上述预定指示信息的形式只是本实施例中的可选示例,预定指示信息可以是任何形式的指示信息,本实施例对此不做限定。
可选地,在本实施例中,当预设存储空间中的目标存储位置上存储了预定指示信息的情况下,则不推送获取的待推送数据,此时可以但不限于是将待推送数据从待推送的数据池中删除,也可以为该待推送数据添加指定的标记,用来表示该数据时已经推送过的数据,不再进行推送。
可见,通过上述步骤,预设存储空间的存储位置上只存储了用于指示已推送过的数据的标识信息的预定指示信息,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,表示未推送过该待推送数则,则将该待推送数据推送出去,这样以来,利用待推送数据的标识信息对应的目标存储位置上是否存储了预定指示信息表示待推送数据是否是已推送过的数据,从而降低了已推送过的数据的存储成本,进而克服相关技术中已推送过的数据的存储成本过高的问题。
进一步,在预设存储空间中只存储用于指示已推送过的数据的标识信息的预定指示信息,可以有效地减少预设存储空间的存储信息,在降低了已推送过的数据的存储成本的同时使得相同容量的预设存储空间中能够存储更多的已推送过的数据,从而避免出现存储溢出而淘汰旧曝光记录导致多数重复数据被推荐出的现象发生,进而实现了推荐数据无重复且成本更低。
此外,当已推送过的数据存储量大时会因远程读取单条历史记录过大而导致网络超时无法返回历史曝光记录和无推送数据返回,导致数据无法推送,资讯Feeds无法刷新,在预设存储空间中只存储用于指示已推送过的数据的标识信息的预定指示信息,在有效地减少了预设存储空间的存储信息,降低了已推送过的数据的存储成本的同时,使得读取出的历史记录的数据量变小,从而避免出现无法刷新数据的现象,进而实现了推荐数据的无限刷新。
作为一种可选的方案,推送模块74包括:
1)第一提取单元,被设置为从待推送数据的标识信息中提取第一映射信息,其中,第一映射信息用于指示待推送数据的标识信息对应的存储位置;
2)第一推送单元,被设置为当预设存储空间中第一映射信息指示的存储位置未存储预定指示信息的情况下,推送待推送数据。
可选地,在本实施例中,第一提取单元被设置为:提取待推送数据的标识信息对应的第一哈希值集合,其中,第一哈希值集合中包括数量为第一预设数量的哈希值,第一预设数量的哈希值中的每一个哈希值对应了目标存储位置中的一个存储位置;第一推送单元被设置为:当第一哈希值集合中的每个哈希值指示的存储位置未均存储第一预设值的情况下,推送待推送数据。
可选地,在本实施例中,第一提取单元从待推送数据的标识信息中提取第一映射信息的方式可以但不限于是获取待推送数据的标识信息的哈希值,提取的哈希值可以是多个哈希值组成一个哈希值集合。
作为一种可选的方案,推送模块74包括:
1)遍历单元,被设置为根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;
2)第二推送单元,被设置为当一个或者多个第一预设存储块中没有目标存储位置上存储了预定指示信息的第一预设存储块的情况下,推送待推送数据。
可选地,在本实施例中,根据存储时间遍历第一预设存储块的顺序可以预先设置,可以是从第一块第一预设存储块(即存储时间最晚的第一预设存储块)开始遍历,或者也可以从最后一块第一预设存储块(即存储时间最早的第一预设存储块)开始遍历。
作为一个可选的实施方式,预设存储空间可以但不限于设计为动态布隆过滤器,利用动态布隆过滤器查询待推送的数据是否是已推送过的数据,也就是说,利用动态布隆过滤器过滤曝光历史,可以对待推送数据的标识信息(例如:需要推荐曝光的文章docId)按与存储时相同的hash取值方式取k个值。最后一块第一预设存储块(BF)存储区往往存着最近的推荐数据,可以从最后一块BF存储区开始遍历,可提高遍历查询效率。查询时若所有hash值在同一个BF中对应位bit都为1,则表示该文章已经曝光过,此次不需要再重复曝光,需过滤掉,否则继续查询前一块。
图4是根据本发明实施例的动态布隆过滤器查询已推送数据的方法的示意图,如图4所示,一篇资讯文章docId取k个hash值,从最后一个BF块开始遍历至第一个BF块,中间某块若满足k个对应位bit全为1,则表示这篇文章命中历史曝光记录,即已推送过该数据,需要过滤;若所有块遍历后仍未命中,则表示这篇文章不在历史曝光记录中,可推送至用户。
可见,通过上述装置,将预设存储空间分配为一个或者多个第一预设存储块,从而可以实现已推送的数据的分别管理,提高了数据的管理效率。
作为一种可选的方案,上述装置还包括:
1)更新模块,被设置为根据待推送数据的标识信息更新预设存储空间。
可选地,在本实施例中,如果推送了待推送数据,那么就表示该待推送数据对于下一次数据推送来说成为了已推送过的数据,可以将该待推送数据的推送历史记录到预设存储空间中,实现预设存储空间的更新,从而确保已推送过的数据的实时性。
作为一种可选的方案,更新模块包括:
1)第二提取单元,被设置为从待推送数据的标识信息中提取第二映射信息,其中,第二映射信息用于指示待推送数据的标识信息对应的存储 位置;
2)设置单元,被设置为将预设存储空间中第二映射信息指示的存储位置存储的值设置为第二预设值;
3)处理单元,被设置为将待推送数据的推送时间存储到预设存储空间的第一预设存储位置并将第二预设存储位置存储的值加一,其中,第二预设存储位置用于存储预设存储空间中记录的推送过的历史数据的数量。
可选地,在本实施例中,第二提取单元被设置为:获取待推送数据的标识信息对应的第二哈希值集合,其中,第二哈希值集合中包括数量为第二预设数量的哈希值,第二预设数量的哈希值中的每一个哈希值对应了预设存储空间中的一个存储位置;设置单元被设置为:将第二哈希值集合中的每个哈希值指示的存储位置存储的值均设置为第二预设值。
可选地,在本实施例中,可以通过待推送数据的标识信息对应的第二预设数量的哈希值组成第二哈希值集合,将第二哈希值集合作为从待推送数据的标识信息中提取的第二映射信息,并将第二哈希值集合的信息记录到预设存储空间中。
作为一种可选的方案,设置单元被设置为:当一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中第二预设存储位置存储的值未达到第一预设阈值的情况下,将一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中第二映射信息指示的存储位置存储的值设置为第二预设值,其中,预设存储空间包括一个或者多个第一预设存储块。
可选地,在本实施例中,可以将预设存储空间划分为一个或者多个第一预设存储块,将待推送数据的信息存储到记载的存储时间与当前时间最接近的第一预设存储块中第二映射信息对应的存储位置上,在存储待推送数据时,可以为每块第一预设存储块存储已推送过的数据的数量设置一个存储上限,在当前的第一预设存储块存储的已推送过的数据的数量未达到 该上限的情况下,将待推送数据的信息存储到当前的第一预设存储块中。
作为一种可选的方案,设置单元还被设置为:当第二预设存储位置存储的值达到第一预设阈值的情况下,在预设存储空间中分配第二预设存储块;将第二预设存储块中第二映射信息指示的存储位置存储的值设置为第二预设值。
可选地,在本实施例中,如果上述校验不成功或者没能成功下载第一配置文件,则可以但不限于通过下载待更新的配置对象对应的完整的配置信息实现配置对象的更新。可选地,完整的配置信息可以但不限于是经过最优压缩的,如果配置信息是压缩后的信息,则对下载的完整的配置信息进行解压,并将解压后的文件作为更新后的配置对象的配置文件。
可选地,在本实施例中,下载第二配置文件的传输协议可以但不限于是TCP协议。也可以是其他的协议,在这里为了提高下载第二配置文件时的可靠性,可以使用私有协议对第二配置文件进行下载。
作为一种可选的方案,设置单元还被设置为:在预设存储空间中分配第二预设存储块之前,当一个或者多个第一预设存储块的数量达到第二预设阈值的情况下,释放一个或者多个第一预设存储块中记载的存储时间与当前时间的差值最大的第一预设存储块的存储空间。
可选地,在本实施例中,如果当前的第一预设存储块存储的已推送过的数据的数量已经达到了当前第一预设存储块的存储上限,则在预设存储空间中分配第二预设存储块,并将待推送数据的信息存储到新分配的第二预设存储块中。
作为一种可选的方案,该装置还包括:
1)遍历模块,被设置为根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;
2)释放模块,被设置为释放一个或者多个第一预设存储空间中记载 的存储时间早于预设时间的第一预设存储块。
可选地,在本实施例中,对于存储时间超过一定时长的预设存储块,可以定时将超时的预设存储块的存储空间释放,从而提高预设存储空间的利用率。
作为一个可选的实施方式,当DBF中某些块的时间已超过预设的时间期限时,这部分数据再留在存储空间已无作用,可以选择淘汰释放。DBF中第一块BF的存储时间是最久的,可以从第一块开始依次遍历淘汰,由于DBF每块的时间是一次增大的,故当某块不满足淘汰时间即可终止遍历。若DBF中扩容时块数已达到上限,则从第一块时间最久远的开始淘汰,每次只淘汰一块,如此可以实现在一定范围内不出现重复推荐。
图6是根据本发明实施例的动态布隆过滤器释放方法的示意图,如图6所示,动态布隆过滤器DBF每块的recTime表示最近存储的推荐时间。读取出动态布隆过滤器存储的曝光历史记录时,从第一块开始往后遍历,当某块BF的recTime超过预设的时间时,可以释放该BF块;在存储时,若分配的块数达到限制的上线,可以释放recTime最久的BF块,并重新分配一块。
本发明实施例的应用环境可以但不限于参照实施例1中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施上述数据的推送方法的一种可选的具体应用示例。
作为一种可选的实施例,上述配置对象的更新方法可以但不限于应用于服务器为客户端推送数据的场景中。在本实施例中提供了一种实现资讯Feeds无限刷新的方法,该方法包括:用户刷新或下拉资讯Feeds;从数据池推荐数据并利用动态布隆过滤器查询过滤用户已曝光的历史数据;存储即将推荐的资讯Feeds数据至动态布隆过滤器并返回数据至客户端展示。其中,动态布隆过滤器由多块带有时间戳和计数的布隆过滤器块组成,包括存储、动态扩容、动态释放、查询过滤等功能。利用动态布隆过滤器推送数据时基于海量用户行为数据设计布隆过滤器块大小,并根据资讯用户 刷新Feeds的文章数量来实时动态调整布隆过滤器块数。本发明解决了资讯Feeds随用户数和刷新数增长时,出现的文章重复露出、刷新不出数据等不良体验,并在成本上大幅度下降,实现了资讯Feeds无限刷新。
图8是根据本发明实施例的资讯Feeds刷新方法的流程图,该流程包括步骤如下:
步骤S801,用户刷新或下拉资讯Feeds;
可选的,在资讯Feeds页面刷新或者下拉加载更多资讯数据的场景中,当用户刷新一次后,操作刷新或者往下继续拉取,都会触发资讯Feeds数据的加载。
步骤S802,从数据池推荐数据并利用动态布隆过滤器过滤用户已曝光的历史数据;
可选的,从数据池获取推荐数据,将需要推荐的数据文章docId取k个hash值,通过动态布隆过滤器来查询k个hash值对应的信息是否在曝光历史记录中,若在则过滤已曝光的用户历史数据,防止重复推荐。
步骤S803,存储即将推荐的资讯Feeds数据至动态布隆过滤器并返回数据至客户端展示;
可选的,从步骤S802筛选数据后,需要为即将的曝光数据进行存储,将数据文章docId取k各hash值,存储至动态布隆过滤器的BF块中。
在本实施例中,实现动态布隆过滤器时,每块存储文章总数n和可接受的误判率p来计算每个布隆过滤器BF块空间
最优hash函数的个数
一块BF的误判率为f
BF(m,k,n)=p,多块BF之间满足独立性,若扩容分配的BF数量为r,则某个元素在r个填满的DBF中的误判率可计算为f
DBF(m,k,n,r)=1-(1-f
BF(m,k,n))
r。
在实际使用时,用户海量曝光数据的统计如图9所示,平均一天用户记录数分布集中在1-70篇的占了54%,70-120占11%,120-200分别占了10%,剩余数量占了25%,因此在用户推荐历史中,设计存储量n=70;BF的误判率不能太高,否则很多资讯文章会因被误判而无法推荐,可接受单块BF的误判率设定为f
BF(m,k,n)=p=0.5%,则可以计算出容量空间
和最优的hash函数个数
DBF分配多块BF的误判率f
DBF(m,k,n,r)=1-(1-0.5%)
r。随着BF块数r增加,会导致f
DBF(m,k,n,r)增长,用户3天曝光数平均为200篇,误判率为1.5%,当曝光历史数量为1000篇时,误判率为6.8%,属于可接受范围。因此,综合考虑选择参数n=70,p=0.5%,m=773,k=8。假设每天平均刷新70篇,则传统CACHE方案存储三天历史记录需要(70*32+4)*3=6732bit,采用DBF的方案,三天历史记录需要(773+8)*3=2343bit,相比传统CACHE方案,成本降低了66%,且网络耗时降低。
在实际过程中,可能存在读取曝光历史超时、存储曝光历史失败导致的异常情况而无法返回数据或返回重复数据。在本实施例中可以使用指定下标的随机法避免上述问题的发生,即通过统计用户平均曝光数作为数据池曝光数的随机起始下标开始随机选取数据,这样可避免无法刷新出Feeds数据,且尽量减少用户刷到重复内容。
根据本发明实施例,还提供了一种用于实施上述数据的推送方法的电子装置,如图10所示,该电子装置可以包括一个或多个(图中仅示出一个)处理器1001、存储器1003、以及传输装置1005,如图10所示,该电子装置还可以包括输入输出设备1007。
其中,存储器1003可用于存储计算机程序以及模块,如本发明实施 例中的数据加载方法和装置对应的程序指令/模块,处理器1001被设置为通过运行存储在存储器1003内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据加载方法。存储器1003可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1003可进一步包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1005用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1005包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1003用于存储应用程序。
处理器1001可以通过传输装置1005调用存储器1003存储的应用程序,以执行下述步骤:获取待推送数据以及待推送数据的标识信息,其中,待推送数据的标识信息用于唯一标识待推送数据;当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送待推送数据,其中,目标存储位置包括与待推送数据的标识信息对应的存储位置,预定指示信息用于指示已推送过的数据的标识信息。
处理器1001还用于执行下述步骤:从待推送数据的标识信息中提取第一映射信息,其中,第一映射信息用于指示待推送数据的标识信息对应的存储位置;当预设存储空间中第一映射信息指示的存储位置未存储预定指示信息的情况下,推送待推送数据。
处理器1001还用于执行下述步骤:提取待推送数据的标识信息对应 的第一哈希值集合,其中,第一哈希值集合中包括数量为第一预设数量的哈希值,第一预设数量的哈希值中的每一个哈希值对应了目标存储位置中的一个存储位置;当第一哈希值集合中的每个哈希值指示的存储位置未均存储第一预设值的情况下,推送待推送数据。
处理器1001还用于执行下述步骤:根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;当一个或者多个第一预设存储块中没有目标存储位置上存储了预定指示信息的第一预设存储块的情况下,推送待推送数据。
处理器1001还用于执行下述步骤:根据待推送数据的标识信息更新预设存储空间。
处理器1001还用于执行下述步骤:从待推送数据的标识信息中提取第二映射信息,其中,第二映射信息用于指示待推送数据的标识信息对应的存储位置;将预设存储空间中第二映射信息指示的存储位置存储的值设置为第二预设值;将待推送数据的推送时间存储到预设存储空间的第一预设存储位置并将第二预设存储位置存储的值加一,其中,第二预设存储位置用于存储预设存储空间中记录的推送过的历史数据的数量。
处理器1001还用于执行下述步骤:获取待推送数据的标识信息对应的第二哈希值集合,其中,第二哈希值集合中包括数量为第二预设数量的哈希值,第二预设数量的哈希值中的每一个哈希值对应了预设存储空间中的一个存储位置;将预设存储空间中第二映射信息指示的存储位置存储的值设置为第二预设值包括:将第二哈希值集合中的每个哈希值指示的存储位置存储的值均设置为第二预设值。
处理器1001还用于执行下述步骤:当一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中第二预设存储位置存储的值未达到第一预设阈值的情况下,将一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中第二映射 信息指示的存储位置存储的值设置为第二预设值,其中,预设存储空间包括一个或者多个第一预设存储块。
处理器1001还用于执行下述步骤:在预设存储空间中分配第二预设存储块;将第二预设存储块中第二映射信息指示的存储位置存储的值设置为第二预设值。
处理器1001还用于执行下述步骤:当一个或者多个第一预设存储块的数量达到第二预设阈值的情况下,释放一个或者多个第一预设存储块中记载的存储时间与当前时间的差值最大的第一预设存储块的存储空间。
处理器1001还用于执行下述步骤:根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;释放一个或者多个第一预设存储空间中记载的存储时间早于预设时间的第一预设存储块。
采用本发明实施例,提供了一种数据的推送方法的方案。通过,达到了,从而实现了的技术效果,进而解决了相关技术中已推送过的数据的存储成本过高的技术问题。
可选地,本实施例中的具体示例可以参考上述中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器 (Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行数据的推送方法。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S1,获取待推送数据以及待推送数据的标识信息,其中,待推送数据的标识信息用于唯一标识待推送数据;
S2,当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送待推送数据,其中,目标存储位置包括与待推送数据的标识信息对应的存储位置,预定指示信息用于指示已推送过的数据的标识信息。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S3,从待推送数据的标识信息中提取第一映射信息,其中,第一映射信息用于指示待推送数据的标识信息对应的存储位置;
S4,当预设存储空间中第一映射信息指示的存储位置未存储预定指示信息的情况下,推送待推送数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:提取待推送数据的标识信息对应的第一哈希值集合,其中,第一哈希值集合中包括数量为第一预设数量的哈希值,第一预设数量的哈希值中的每一个哈希值对应了目标存储位置中的一个存储位置;当第一哈希值集合中的每个哈希值指示的存储位置未均存储第一预设值的情况下,推送待推送数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根 据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;当一个或者多个第一预设存储块中没有目标存储位置上存储了预定指示信息的第一预设存储块的情况下,推送待推送数据。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据待推送数据的标识信息更新预设存储空间。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:从待推送数据的标识信息中提取第二映射信息,其中,第二映射信息用于指示待推送数据的标识信息对应的存储位置;将预设存储空间中第二映射信息指示的存储位置存储的值设置为第二预设值;将待推送数据的推送时间存储到预设存储空间的第一预设存储位置并将第二预设存储位置存储的值加一,其中,第二预设存储位置用于存储预设存储空间中记录的推送过的历史数据的数量。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取待推送数据的标识信息对应的第二哈希值集合,其中,第二哈希值集合中包括数量为第二预设数量的哈希值,第二预设数量的哈希值中的每一个哈希值对应了预设存储空间中的一个存储位置;将预设存储空间中第二映射信息指示的存储位置存储的值设置为第二预设值包括:将第二哈希值集合中的每个哈希值指示的存储位置存储的值均设置为第二预设值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:当一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中第二预设存储位置存储的值未达到第一预设阈值的情况下,将一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中第二映射信息指示的存储位置存储的值设置为第二预设值,其中,预设存储空间包括一个或者多个第一预设存储块。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在预设存储空间中分配第二预设存储块;将第二预设存储块中第二映射信息 指示的存储位置存储的值设置为第二预设值。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:当一个或者多个第一预设存储块的数量达到第二预设阈值的情况下,释放一个或者多个第一预设存储块中记载的存储时间与当前时间的差值最大的第一预设存储块的存储空间。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:根据一个或者多个第一预设存储块中记载的存储时间遍历一个或者多个第一预设存储块,其中,预设存储空间包括一个或者多个第一预设存储块;释放一个或者多个第一预设存储空间中记载的存储时间早于预设时间的第一预设存储块。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (19)
- 一种数据的推送方法,包括:获取待推送数据以及所述待推送数据的标识信息,其中,所述待推送数据的标识信息用于唯一标识所述待推送数据;当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送所述待推送数据,其中,所述目标存储位置包括与所述待推送数据的标识信息对应的存储位置,所述预定指示信息用于指示已推送过的数据的标识信息。
- 根据权利要求1所述的方法,其中,当所述预设存储空间中的所述目标存储位置上未存储所述预定指示信息的情况下,推送所述待推送数据包括:从所述待推送数据的标识信息中提取第一映射信息,其中,所述第一映射信息用于指示所述待推送数据的标识信息对应的存储位置;当所述预设存储空间中所述第一映射信息指示的存储位置未存储所述预定指示信息的情况下,推送所述待推送数据。
- 根据权利要求2所述的方法,其中,从所述待推送数据的标识信息中提取所述第一映射信息包括:提取所述待推送数据的标识信息对应的第一哈希值集合,其中,所述第一哈希值集合中包括数量为第一预设数量的哈希值,第一预设数量的哈希值中的每一个哈希值对应了所述目标存储位置中的一个存储位置;当所述预设存储空间中所述第一映射信息指示的存储位置未存储所述预定指示信息的情况下,推送所述待推送数据包括:当所述第一哈希值集合中的每个哈希值指示的存储位置未均存储所述第一预设值的情况下,推送所述待推送数据。
- 根据权利要求1所述的方法,其中,当所述预设存储空间中的所述目 标存储位置上未存储所述预定指示信息的情况下,推送所述待推送数据包括:根据一个或者多个第一预设存储块中记载的存储时间遍历所述一个或者多个第一预设存储块,其中,所述预设存储空间包括所述一个或者多个第一预设存储块;当所述一个或者多个第一预设存储块中没有所述目标存储位置上存储了所述预定指示信息的第一预设存储块的情况下,推送所述待推送数据。
- 根据权利要求1所述的方法,其中,在推送所述待推送数据之后,所述方法还包括:根据所述待推送数据的标识信息更新所述预设存储空间。
- 根据权利要求5所述的方法,其中,根据所述待推送数据的标识信息更新所述预设存储空间包括:从所述待推送数据的标识信息中提取第二映射信息,其中,所述第二映射信息用于指示所述待推送数据的标识信息对应的存储位置;将所述预设存储空间中所述第二映射信息指示的存储位置存储的值设置为第二预设值;将所述待推送数据的推送时间存储到所述预设存储空间的第一预设存储位置并将第二预设存储位置存储的值加一,其中,所述第二预设存储位置用于存储所述预设存储空间中记录的推送过的历史数据的数量。
- 根据权利要求6所述的方法,其中,从所述待推送数据的标识信息中提取所述第二映射信息包括:获取所述待推送数据的标识信息对应的第二哈希值集合,其中,所述第二哈希值集合中包括数量为第二预设数量的哈希值,第二预设数量的哈希值中的每一个哈希值对应了所述预设存储空间中的一个存储位置;将所述预设存储空间中所述第二映射信息指示的存储位置存储的值设置为第二预设值包括:将所述第二哈希值集合中的每个哈希值指示的存储位置存储的值均设置为所述第二预设值。
- 根据权利要求6所述的方法,其中,将所述预设存储空间中所述第二映射信息指示的存储位置存储的值设置为所述第二预设值包括:当一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中所述第二预设存储位置存储的值未达到第一预设阈值的情况下,将所述一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中所述第二映射信息指示的存储位置存储的值设置为所述第二预设值,其中,所述预设存储空间包括所述一个或者多个第一预设存储块。
- 根据权利要求8所述的方法,其中,当一个或者多个第一预设存储块中记载的存储时间与当前时间最接近的第一预设存储块中所述第二预设存储位置存储的值达到所述第一预设阈值的情况下,所述方法还包括:在所述预设存储空间中分配第二预设存储块;将所述第二预设存储块中所述第二映射信息指示的存储位置存储的值设置为所述第二预设值。
- 根据权利要求9所述的方法,其中,在所述预设存储空间中分配所述第二预设存储块之前,所述方法还包括:当所述一个或者多个第一预设存储块的数量达到第二预设阈值的情况下,释放所述一个或者多个第一预设存储块中记载的存储时间与当前时间的差值最大的第一预设存储块的存储空间。
- 根据权利要求1至10中任一项所述的方法,其中,还包括:根据一个或者多个第一预设存储块中记载的存储时间遍历所述一个或者多个第一预设存储块,其中,所述预设存储空间包括所述一 个或者多个第一预设存储块;释放所述一个或者多个第一预设存储空间中记载的存储时间早于预设时间的第一预设存储块。
- 一种数据的推送装置,包括一个或多个处理器,以及一个或多个存储程序单元的存储器,其中,所述程序单元由所述处理器执行,所述程序单元包括:获取模块,被设置为获取待推送数据以及所述待推送数据的标识信息,其中,所述待推送数据的标识信息用于唯一标识所述待推送数据;推送模块,被设置为当预设存储空间中的目标存储位置上未存储预定指示信息的情况下,推送所述待推送数据,其中,所述目标存储位置包括与所述待推送数据的标识信息对应的存储位置,所述预定指示信息用于指示已推送过的数据的标识信息。
- 根据权利要求12所述的装置,其中,所述推送模块包括:第一提取单元,被设置为从所述待推送数据的标识信息中提取第一映射信息,其中,所述第一映射信息用于指示所述待推送数据的标识信息对应的存储位置;第一推送单元,被设置为当所述预设存储空间中所述第一映射信息指示的存储位置未存储所述预定指示信息的情况下,推送所述待推送数据。
- 根据权利要求12所述的装置,其中,所述推送模块包括:遍历单元,被设置为根据一个或者多个第一预设存储块中记载的存储时间遍历所述一个或者多个第一预设存储块,其中,所述预设存储空间包括所述一个或者多个第一预设存储块;第二推送单元,被设置为当所述一个或者多个第一预设存储块中没有所述目标存储位置上存储了所述预定指示信息的第一预设存储块的情况下,推送所述待推送数据。
- 根据权利要求12所述的装置,其中,所述装置还包括:更新模块,被设置为根据所述待推送数据的标识信息更新所述预设存储空间。
- 根据权利要求15所述的装置,其中,所述更新模块包括:第二提取单元,被设置为从所述待推送数据的标识信息中提取第二映射信息,其中,所述第二映射信息用于指示所述待推送数据的标识信息对应的存储位置;设置单元,被设置为将所述预设存储空间中所述第二映射信息指示的存储位置存储的值设置为第二预设值;处理单元,被设置为将所述待推送数据的推送时间存储到所述预设存储空间的第一预设存储位置并将第二预设存储位置存储的值加一,其中,所述第二预设存储位置用于存储所述预设存储空间中记录的推送过的历史数据的数量。
- 根据权利要求12至16中任一项所述的装置,其中,所述装置还包括:遍历模块,被设置为根据一个或者多个第一预设存储块中记载的存储时间遍历所述一个或者多个第一预设存储块,其中,所述预设存储空间包括所述一个或者多个第一预设存储块;释放模块,被设置为释放所述一个或者多个第一预设存储空间中记载的存储时间早于预设时间的第一预设存储块。
- 一种存储介质,其中,所述存储介质中存储有计算机程序,所述计算机程序被设置为运行时执行所述权利要求1至11任一项中所述的方法。
- 一种电子装置,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至11任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/357,797 US10949112B2 (en) | 2017-02-27 | 2019-03-19 | Data push method and device, storage medium, and electronic device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710109224.XA CN108512876B (zh) | 2017-02-27 | 2017-02-27 | 数据的推送方法及装置 |
CN201710109224.X | 2017-02-27 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/357,797 Continuation US10949112B2 (en) | 2017-02-27 | 2019-03-19 | Data push method and device, storage medium, and electronic device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018153271A1 true WO2018153271A1 (zh) | 2018-08-30 |
Family
ID=63252381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/075778 WO2018153271A1 (zh) | 2017-02-27 | 2018-02-08 | 数据的推送方法、装置、存储介质及电子装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10949112B2 (zh) |
CN (1) | CN108512876B (zh) |
WO (1) | WO2018153271A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110247963A (zh) * | 2019-05-31 | 2019-09-17 | 北京智慧云行科技有限责任公司 | 一种数据推送方法及系统 |
CN110351371A (zh) * | 2019-07-15 | 2019-10-18 | 星联云服科技有限公司 | 一种在云存储系统中进行数据推送的方法及系统 |
CN111666484A (zh) * | 2019-03-07 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 内容推送方法、推送装置及计算机可读存储介质 |
CN113312118A (zh) * | 2021-06-01 | 2021-08-27 | 中国民航信息网络股份有限公司 | 一种主图推送方法、装置、设备和计算机可读存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460659A (zh) * | 2019-08-06 | 2019-11-15 | 辽宁途隆科技有限公司 | 数据推送方法及装置、存储介质、计算机设备 |
CN110750746A (zh) * | 2019-10-16 | 2020-02-04 | 支付宝(杭州)信息技术有限公司 | 一种数据接收、推送的方法、装置、设备及可读介质 |
CN113395304A (zh) * | 2020-03-12 | 2021-09-14 | 阿里巴巴集团控股有限公司 | 信息推送方法和系统、客户端、存储介质及计算终端 |
CN111611215B (zh) * | 2020-04-07 | 2023-07-11 | 布比(北京)网络技术有限公司 | 一种基于区块链的网贷风险数据共享方法及系统 |
CN113742388A (zh) * | 2020-05-29 | 2021-12-03 | 北京顺源开华科技有限公司 | 一种数据推送方法、装置、存储介质及电子设备 |
CN111768130B (zh) * | 2020-08-06 | 2024-05-17 | 京东科技控股股份有限公司 | 用户分配方法、装置、电子设备及可读存储介质 |
CN113556352B (zh) * | 2021-07-27 | 2022-10-28 | 北京字跳网络技术有限公司 | 一种信息推送方法、装置、终端设备及存储介质 |
CN114553946B (zh) * | 2022-01-29 | 2024-01-19 | 北京金堤科技有限公司 | 一种对消息进行处理的方法及装置 |
CN114553815A (zh) * | 2022-01-29 | 2022-05-27 | 北京金堤科技有限公司 | 一种对消息进行处理的方法及装置 |
CN115174696B (zh) * | 2022-09-08 | 2023-01-20 | 北京达佳互联信息技术有限公司 | 节点调度方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003351A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Navigating a resource browser session |
CN103177042A (zh) * | 2011-12-26 | 2013-06-26 | 宇龙计算机通信科技(深圳)有限公司 | 一种网页浏览的方法及装置 |
US8589391B1 (en) * | 2005-03-31 | 2013-11-19 | Google Inc. | Method and system for generating web site ratings for a user |
US20140136569A1 (en) * | 2012-11-09 | 2014-05-15 | Microsoft Corporation | Taxonomy Driven Commerce Site |
CN103916373A (zh) * | 2013-01-07 | 2014-07-09 | 腾讯科技(深圳)有限公司 | 数据更新的方法、服务器、客户端以及系统 |
CN104104707A (zh) * | 2013-04-12 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 网页数据更新方法、终端、缓存服务器及系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8725880B2 (en) * | 2010-04-07 | 2014-05-13 | Apple, Inc. | Establishing online communication sessions between client computing devices |
US8407776B2 (en) * | 2011-02-11 | 2013-03-26 | Good Technology Corporation | Method, apparatus and system for provisioning a push notification session |
US9294546B2 (en) * | 2011-06-03 | 2016-03-22 | Apple Inc. | Sending files from one device to another device over a network |
CN103581224B (zh) * | 2012-07-25 | 2018-05-22 | 腾讯科技(深圳)有限公司 | 推送信息的方法和装置 |
CN103729142B (zh) * | 2012-10-10 | 2016-12-21 | 华为技术有限公司 | 内存数据的推送方法及装置 |
US9223871B2 (en) * | 2012-11-14 | 2015-12-29 | Homer Tlc, Inc. | System and method for automatic wrapper induction using target strings |
US9553838B1 (en) * | 2013-02-08 | 2017-01-24 | Urban Airship, Inc. | Querying for devices based on location |
GB2516115A (en) * | 2013-07-12 | 2015-01-14 | Canon Kk | Methods and devices for exchanging data |
US10009303B2 (en) * | 2014-01-10 | 2018-06-26 | Huawei Technologies Co., Ltd. | Message push method and apparatus |
CN104901817B (zh) * | 2014-03-07 | 2018-07-10 | 腾讯科技(北京)有限公司 | 目标信息推送方法及装置 |
CN104244032B (zh) * | 2014-09-11 | 2016-03-30 | 腾讯科技(深圳)有限公司 | 推送多媒体数据的方法和装置 |
GB2534849A (en) * | 2015-01-28 | 2016-08-10 | Canon Kk | Client-driven push of resources by a server device |
CN106411975B (zh) * | 2015-07-30 | 2021-07-09 | 腾讯科技(深圳)有限公司 | 一种数据输出方法、装置及计算机可读取存储介质 |
CN105824920A (zh) * | 2016-03-16 | 2016-08-03 | 张姬娟 | 信息展现的方法和停止信息展现的方法 |
CN107665225B (zh) * | 2016-07-29 | 2022-01-28 | 北京京东尚科信息技术有限公司 | 信息推送方法和装置 |
CN106210127B (zh) * | 2016-08-15 | 2019-07-16 | 腾讯科技(深圳)有限公司 | 一种信息处理方法、服务器及客户端 |
CN106326431A (zh) * | 2016-08-25 | 2017-01-11 | 乐视控股(北京)有限公司 | 一种信息推荐方法和装置 |
-
2017
- 2017-02-27 CN CN201710109224.XA patent/CN108512876B/zh active Active
-
2018
- 2018-02-08 WO PCT/CN2018/075778 patent/WO2018153271A1/zh active Application Filing
-
2019
- 2019-03-19 US US16/357,797 patent/US10949112B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003351A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Navigating a resource browser session |
US8589391B1 (en) * | 2005-03-31 | 2013-11-19 | Google Inc. | Method and system for generating web site ratings for a user |
CN103177042A (zh) * | 2011-12-26 | 2013-06-26 | 宇龙计算机通信科技(深圳)有限公司 | 一种网页浏览的方法及装置 |
US20140136569A1 (en) * | 2012-11-09 | 2014-05-15 | Microsoft Corporation | Taxonomy Driven Commerce Site |
CN103916373A (zh) * | 2013-01-07 | 2014-07-09 | 腾讯科技(深圳)有限公司 | 数据更新的方法、服务器、客户端以及系统 |
CN104104707A (zh) * | 2013-04-12 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 网页数据更新方法、终端、缓存服务器及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666484A (zh) * | 2019-03-07 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 内容推送方法、推送装置及计算机可读存储介质 |
CN111666484B (zh) * | 2019-03-07 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 内容推送方法、推送装置及计算机可读存储介质 |
CN110247963A (zh) * | 2019-05-31 | 2019-09-17 | 北京智慧云行科技有限责任公司 | 一种数据推送方法及系统 |
CN110351371A (zh) * | 2019-07-15 | 2019-10-18 | 星联云服科技有限公司 | 一种在云存储系统中进行数据推送的方法及系统 |
CN113312118A (zh) * | 2021-06-01 | 2021-08-27 | 中国民航信息网络股份有限公司 | 一种主图推送方法、装置、设备和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10949112B2 (en) | 2021-03-16 |
CN108512876A (zh) | 2018-09-07 |
CN108512876B (zh) | 2020-11-10 |
US20190212939A1 (en) | 2019-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018153271A1 (zh) | 数据的推送方法、装置、存储介质及电子装置 | |
CN109154917B (zh) | 存储系统和固态硬盘 | |
CN111159436B (zh) | 一种推荐多媒体内容的方法、装置及计算设备 | |
JP6014925B2 (ja) | メモリ回収方法および装置 | |
CN108133031B (zh) | 一种过滤推荐视频候选结果的方法及装置 | |
US10606806B2 (en) | Method and apparatus for storing time series data | |
EP3128420A1 (en) | Service flow control method, controller and system in object-based storage system | |
CN103995855A (zh) | 存储数据的方法和装置 | |
CN110209348B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
WO2020098654A1 (zh) | 基于云存储的数据存储方法、装置和存储介质 | |
CN107168651B (zh) | 一种小文件聚合存储处理方法 | |
CN109491606B (zh) | 一种全闪存储空间管理方法、系统、设备及计算机介质 | |
CN110045924B (zh) | 分级存储方法、装置、电子设备及计算机可读存储介质 | |
CN114090577A (zh) | 时序数据的存储、读取方法及装置 | |
CN113468274A (zh) | 数据存储方法和装置、存储介质及电子设备 | |
CN106570068B (zh) | 信息推荐方法及装置 | |
CN115865097B (zh) | 一种数据压缩方法、系统、设备及计算机可读存储介质 | |
CN109977074B (zh) | 一种基于hdfs的lob数据处理方法及装置 | |
CN106998436B (zh) | 录像备份方法及装置 | |
CN112764973B (zh) | 数据容灾方法、装置、电子设备和可读存储介质 | |
US9600415B1 (en) | Method, apparatus, and computer program stored in computer readable medium for managing storage server in database system | |
CN111831206B (zh) | 存储空间切换方法及后端监控系统 | |
CN111405313B (zh) | 存储流媒体数据的方法和系统 | |
CN111026896A (zh) | 特征值存储、处理方法、设备及存储装置 | |
US10353589B2 (en) | Data storage device and data management method for data storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18758051 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18758051 Country of ref document: EP Kind code of ref document: A1 |