redis数据类型操作

7.数据类型

set name zsj

get name

setnx name :不会覆盖原来的值,如果存在不更新,如果不存在择设置

setex:设置并指定有效期

setex haircolor 10 red :设置haircolor的有效时间为10秒

没有设置有效期代表永久有效

setrange name 6 gmail.com:从第六个字符开始替换成gmail.com【替换同等长度】

mset key1 valus1 key2 value2:同时设置两个值

msetnx

getset:获取旧值并设置新值

getset key6 30

getrange:获取子字符串

getrange name 0 5:返回name的第0个到第5个字符串之间的

mget:批量获取

incr key:自增一次

incrby key 6:每次增6,不存在key会默认设置为0

decr:自减

decrby

append key value:给key追加value,返回最终字符串长度

strlen:获取键的字符串长度【strlen key】

hset key property value

hset user:001 name zsj

hget user:001 name

hsetnx

hmset user:001 name hello age 10

hmget user:001 name age

hincrby user:001 age 5

hexist user:001 age:判断age字段是否存在

hlen user:001 :返回hash中的键的数量

hdel user:001 age:删除hash对象中的age

hkeys user:001:返回hash对象中的所有字段

hvals user:001:返回hash对象中所有字段的value值

hgetall user:001:获取某个hash对象中所有的字段和其对应的值

8.lists类型与操作[push/pop]【本身是为栈的方式放入数据】

redis中lists为双向链表,都可以从头和尾放数据和取数据,既可以作为栈也可以作为队列

lpush mylist "hello" #从头部压入一个元素,返回元素的个数

lrange mylist 0 -1  #从第一个元素一直到尾的第一个元素

rpush list2 "zsj" #从尾部压入元素

linsert mylist before "hello" "world" :在hello前面压入一个world元素【注:从尾到头的方向】

lset mylist 0 "hello":给第0个位置的元素重新赋值

lrem list 1 "hello":从list中删除1个为hello的元素,返回成功删除的个数【从key对应的list中删除n个和value相同的元素】

ltrim保留key的值的范围之内的数据

ltrim list 1 -1 :保留从1开始到最后一个元素

lpop:从头部删除元素,并返回删除元素

rpoplpush:从第一个list的尾部移除元素并添加到第二个list的头部

rpoplpush list1 list2

lindex:返回名称为key的list中index位置的元素

lindex list 1

llen返回list的大小

9.set类型

sadd mysset "hello"

smembers myset #查看元素

srem myset "hello" #删除元素

spop 随机返回并删除名称为key的set当中的某一个元素

spop myset

sdiff set1 set2 :[返回所有给定key与第一个key的差集]返回set1中在set2中所没有的

sdiffstore set3 set1 set2:将set1与set2的差集存储到set3中

sinter set1 set2 :取两个集合中的交集

sinterstore set3 set1 set2 :将set1,set2中的交集存储在set3中

sunion set1 set2 :取set1,set2的并集

sunionstore set3 set1 set2

smove [从第一个key对应的set中移除member并添加到第二个对应的set中]

smove set1 set2 value

scard set :返回集合中元素的个数

sismember:测试某个元素是否为set中的元素

sismember set value :测试value是否set中的元素

srandmember:随机返回set中的某一个元素,但不删除

srandmember set

10 sorted sets有序集合

zadd 向名称为key的zset中添加元素member,score用于排序。如果该元素存在,则更新其顺序

zadd myzset 1 "one"

zadd myzset 2 "two"

zadd myzset 3 "two" :此时元素two不会更新进去,但是排序会更新为3

zrange myzset 0 -1 withscores ##withscores的目的是输出顺序号

zrem 删除名称为key的zset中的元素member

zrem set value

zincrby 对set中的顺序指定增加或减少

zincrby myset 2 "one" :将one的顺序值增加2,如果one不存在,则添加此元素

zrank 返回zset中元素的索引,从小到大排序

zrank myset "two" :返回two元素的索引值

zrevrank 从大到小排序

zrevrange 倒序查看zset中的member及排序情况

zrevrange myzset 0 -1 withscores

zrangebyscore myzset 2 3 withscores 获取2到3的所有元素

zcount myzset 2 4 :统计2到4之间的元素的个数

zcard myzset :返回集合中所有元素的个数

zremrangebyrank:删除某个区间的元素并返回剩余元素【根据索引删除】

zremrangebyrank myzset 1 1 [从第一个位置开始删除1到1之间的元素]

zremrangebyscore myzset 1 2 [删除给定区间的元素]

时间: 2024-12-19 22:23:50

redis数据类型操作的相关文章

Redis数据类型操作(一) —— String

1. set 格式:set 'key' 'value' 添加一个String类型的键值对. 2. get 格式:get 'key' 获得key对应的String类型value值,找不到则返回nil. 3. mset 格式:mset 'key1' 'value1' 'key2' 'value2'... 添加多个String类型的键值对. 4. mget 格式:mget 'key1' 'key2'... 获得多个key对应的String类型value值,找不到则返回nil. 5. getset 格式

Redis数据类型操作(二) —— Hash

1. hset 格式:hset 'name' 'key' 'value' 添加一个名为name对象,里面含有key-value的键值对. 2. hget 格式:hget 'name' 'key' 获得名为name对象key的value值. 3. hsetnx 格式:hsetnx 'name' 'key' 'value' 添加一个名为name对象.如果name已经存在则不添加也不修改原来的值,并返回0:如果不存在则添加,并返回1. 4. hmset 格式:hmset 'name' 'key1' '

Redis数据类型操作(三) —— List

1. lpush 格式:lpush 'name' 'value' 往名字为name的list里面压入value,返回list里面现有的元素个数.从头压入从头出,先压入的后出. 2. lrange 格式:lrange 'name' {num1} {num2} 获得名字为name的list里面{num1}到{num2}下标的元素.num<0表示倒数. 3. rpush 格式:rpush 'name' 'value' 往名字为name的list里面压入value,返回list里面现有的元素个数.从尾压

Redis数据类型操作(四) —— Set

1. sadd 格式:sadd 'name' 'value' 往名字为name的set里面添加value. 2. smembers 格式:smembers 'name' 返回名字为name的set里面的所有value. 3. srem 格式:srem 'name' 'value' 从名字为name的set里面删除value. 4. spop 格式:spop 'name' 从名字为name的set里面的随机弹出一个元素,并删除元素. 5. sdiff 格式:sdiff 'name1' 'name2

Redis数据类型操作(五) —— Sorted Set

1. zadd 格式:zadd 'name' {num} 'value' 往名字为name的sorted set里面添加value.num为元素的顺序值,如果添加的num已经存在,也不会覆盖原有的值,会有同一个num有两个不同的值.但可以给已经存在的value一个新的num值. 2. zrange 格式:zrange 'name' {num1} {num2} [withscores] 获得名字为name的sorted set里面{num1}到{num2}下标的元素.加withscores会输出顺

redis(一) 安装以及基本数据类型操作

redis(一) 安装以及基本数据类型操作 redis安装和使用 redis安装 wget http://download.redis.io/redis-stable.tar.gz tar zxvf redis-stable.tar.gz cd redis-stable.tar.gz make make install redis启动 redis-server redis关闭 redis-cli shutdown 配置 方法一 redis-server /path/to/redis.conf r

5种redis常用操作(数据类型+键值+服务+安全)

[toc] 5种redis常用数据类型操作 一.Redis常用操作 (string, list) 1.1 如果一个key设置两个不同的值,第二个值会覆盖第一个值. [[email protected] ~]# cd /usr/local/src/redis-4.0.9 [[email protected] redis-4.0.9]# redis-cli 127.0.0.1:6379> set key1 xavi OK 127.0.0.1:6379> set key2 xavilinux OK

系统学习redis之七——redis数据类型之zset数据类型及操作

sourted sets数据类型介绍 sorted set是set的一个升级版本,他在set的基础上增加了一个顺序属性.这一属性在修改元素的时候可以指定,每次指定后,zset会自动按照新的值调整顺序,是有序集合.可以理解为有两列的MySQL表,一列存value,一列存顺序.操作中key理解为zset的名字. zset数据类型方法 zadd:向指定集合zset中添加元素member,score用于排序,如果该元素已经存在,则更新其顺序 zrange:查看sourted sets里面的所有元素 zr

缓存数据库-redis数据类型和操作(list)

转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素). List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: 二:列表常用操作 1)lpush(name,values)  在name对应的l