欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Redis的基操

程序员文章站 2022-05-02 07:53:42
...


更多内容可查看菜鸟

redis的五种数据类型

  1. string(字符串)
  2. hash(哈希)
  3. list(列表)
  4. set(集合)
  5. zset(sorted set有序集合)

字符串的操作

[ps:一个键最大空间为512M]

set key(键的名称) value(键对应的值)

get key(获取键对应的值)

keys *(查看所有的键)

del key(删除键和值)

Redis的基操

INCR key(将键对应的值加1,只能是整形,字符串会报错)

INCRBY key increment(将键对应的值加上你指定的值,如果是负数即为减)

DECR key(这是减一)

DECRBY key  increment(减去指定值)

APPEND key src (往键对应的值拼接src)

Redis的基操

创建哈希表

HMSET name(表名) key1 value1 key2 value2 ...(插入多个键值对,并将表名命名为name)

HGETALL name(查看名字为name的哈希表的所有记录)

HMGET name key1 key2...(当有多个哈希时,查键为key1,key2等等的值)

HSET name key1 value1(这个只能用来添加一个键值对,不能多个)

HGET name key(当只有一个哈希记录时,用这个指令进行值的查看)

Redis的基操

创建列表

LPUSG name(表名) word1 word2 word3...(创建一个名字为name的列表,并添加单词1,2,3...)

Redis的基操
列表会按字典的顺序排列你添加的内容,下标从0开始,如果是中文,会被转换成unicode编码,显示时也是unicode格式。如下:

LRANGE  name index1 index2(查询从下标为index到index2的内容)

Redis的基操
Redis的基操
如果想正常显示中文,可以在启动redis客户端时添加–raw,如下,其中-a fang是我的密码:
Redis的基操

创建无序集合

不能重复

SADD  name(集合名)  value1 value2....(创建集合name,并添加value1,value2等等)

SMEMBERS name(查看名字为name的集合)

SREM name value1 value2(删除name集合的内容value1,value2等等)

Redis的基操

创建有序集合

Redis 有序集合和集合的异同:

  1. 都是string类型元素的集合,且不允许重复的成员。
  2. 有序集合每个元素都会关联一个double类型的分数,然后redis通过分数来为集合中的成员进行从小到大的排序。(不是值有序,是键有序,键一样,根据内容的字典顺序)
  3. 有序集合的成员是唯一的,但分数(score)却可以重复。
  4. 集合都是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。
  5. 集合中最大的成员数都为 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,表明将键一起显示)

Redis的基操

ZREM name value1 value2 value3(删除一个多个值)

Redis的基操