redis mainly has the following data types:
string
##hash
## listset
sorted set
string
This is the simplest type, which is ordinary set and get, and does simple KV caching.
set college szuhash
This is a structure similar to map. This generally allows structured data, such as an object (provided that the object is not nested Other objects) are cached in redis, and then every time you read or write the cache, you can operate a certain field in the hash.
hset person name bingo hset person age 20 hset person id 1 hget person name person = { "name": "bingo", "age": 20, "id": 1 }list
list is an ordered list, which can be used in many ways.
For example, you can use list to store some list-type data structures, such as fan lists, article comment lists, and the like.
For example, you can use the lrange command to read elements in a certain closed range, and you can implement paging queries based on list. This is a great function. Based on redis, you can implement simple high-performance paging, and you can do things like micro Bo is something like drop-down and continuous pagination. It has high performance and can go page by page.
# 0 starting position, -1 ending position. When the ending position is -1, it means the last position in the list, that is, view all.
lrange mylist 0 -1
For example, you can create a simple message queue, enter it from the head of the list, and get it out from the tail of the list.
lpush mylist 1 lpush mylist 2 lpush mylist 3 4 5 # 1 rpop mylistset
set is an unordered set that automatically removes duplicates.
Throw the data that needs to be deduplicated in the system directly based on the set, and it will be automatically deduplicated. If you need to quickly global deduplication of some data, you can of course also use the HashSet in the jvm memory. Perform deduplication, but what if one of your systems is deployed on multiple machines? Global set deduplication must be performed based on redis.
You can play intersection, union, and difference operations based on set. For example, if you intersect, you can combine the fan lists of two people to see who their common friends are. Right.
Put the fans of the two big Vs into two sets, and make an intersection between the two sets.
#-------操作一个set------- # 添加元素 sadd mySet 1 # 查看全部元素 smembers mySet # 判断是否包含某个值 sismember mySet 3 # 删除某个/些元素 srem mySet 1 srem mySet 2 4 # 查看元素个数 scard mySet # 随机删除一个元素 spop mySet #-------操作多个set------- # 将一个set的元素移动到另外一个set smove yourSet mySet 2 # 求两set的交集 sinter yourSet mySet # 求两set的并集 sunion yourSet mySet # 求在yourSet中而不在mySet中的元素 sdiff yourSet mySetsorted set
sorted set is a sorted set, which removes duplication but can be sorted. When writing in, a score is given and it is automatically sorted according to the score.
zadd board 85 zhangsan zadd board 72 lisi zadd board 96 wangwu zadd board 63 zhaoliu # 获取排名前三的用户(默认是升序,所以需要 rev 改为降序) zrevrange board 0 3 # 获取某用户的排名 zrank board zhaoliu
The above is the detailed content of What data does redis generally cache?. For more information, please follow other related articles on the PHP Chinese website!