Redis的基操
程序员文章站
2022-05-02 07:53:42
...
redis的五种数据类型
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set有序集合)
字符串的操作
[ps:一个键最大空间为512M]
set key(键的名称) value(键对应的值)
get key(获取键对应的值)
keys *(查看所有的键)
del key(删除键和值)
INCR key(将键对应的值加1,只能是整形,字符串会报错)
INCRBY key increment(将键对应的值加上你指定的值,如果是负数即为减)
DECR key(这是减一)
DECRBY key increment(减去指定值)
APPEND key src (往键对应的值拼接src)
创建哈希表
HMSET name(表名) key1 value1 key2 value2 ...(插入多个键值对,并将表名命名为name)
HGETALL name(查看名字为name的哈希表的所有记录)
HMGET name key1 key2...(当有多个哈希时,查键为key1,key2等等的值)
HSET name key1 value1(这个只能用来添加一个键值对,不能多个)
HGET name key(当只有一个哈希记录时,用这个指令进行值的查看)
创建列表
LPUSG name(表名) word1 word2 word3...(创建一个名字为name的列表,并添加单词1,2,3...)
列表会按字典的顺序排列你添加的内容,下标从0开始,如果是中文,会被转换成unicode编码,显示时也是unicode格式。如下:
LRANGE name index1 index2(查询从下标为index到index2的内容)
如果想正常显示中文,可以在启动redis客户端时添加–raw,如下,其中-a fang是我的密码:
创建无序集合
不能重复
SADD name(集合名) value1 value2....(创建集合name,并添加value1,value2等等)
SMEMBERS name(查看名字为name的集合)
SREM name value1 value2(删除name集合的内容value1,value2等等)
创建有序集合
Redis 有序集合和集合的异同:
- 都是string类型元素的集合,且不允许重复的成员。
- 有序集合每个元素都会关联一个double类型的分数,然后redis通过分数来为集合中的成员进行从小到大的排序。(不是值有序,是键有序,键一样,根据内容的字典顺序)
- 有序集合的成员是唯一的,但分数(score)却可以重复。
- 集合都是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
- 集合中最大的成员数都为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。
补充:在redis sorted sets里面当items内容大于64的时候同时使用了hash和skiplist两种设计实现。这也会为了排序和查找性能做的优化。所以如上可知: 添加和删除都需要修改skiplist,所以复杂度为O(log(n))。 但是如果仅仅是查找元素的话可以直接使用hash,其复杂度为O(1) 其他的range操作复杂度一般为O(log(n)),当然如果是小于64的时候,因为是采用了ziplist的设计,其时间复杂度为O(n)]——来自菜鸟下某位网友的评论(哇,soga,涨姿势了:)
ZADD name fenshu1 value1 fenshu2 value2...
(添加或更新一个或多个哈希,其中,我们要指明一个分数类型的数与值进行关联)
ZRANGE name index1 index2[withscores]
(显示index1到index2的value,如果带上参数withscores,表明将键一起显示)
ZREM name value1 value2 value3(删除一个多个值)
下一篇: Django+Celery异步发送邮件