Redis(数据类型及操作指令、Java连接Redis)

数据类型

1)、五大数据类型

key+
①string
②set
③list
④hash
⑤zset
tips:只能存储字符串

2)、String

①最基本类型
二进制安全意味着可以包含任何数据,如jpg图片或序列化的对象
value最大为512M

②指令

指令功能
append key value追加字符串
strlen key获取长度
setnx key valuekey不存在时,设置key对应的value
incr key将key中存储的数字值增一(不为数字类型报错),若为空从0开始
decr key将key中存储的数字值减一
incrby/decrby key 步长自定义步长进行增减
mset key1 value1 key2 value2同时设置多个键值对
mget key1 value1 key2 value2同时获取多个value
msetnx key1 value1 key2 value2同时设置多个key-value,当且仅当所有的key都不存在
getrange key 起始位置 结束位置类似substring,区别两边都为开区间
setrange key 起始位置 结束位置覆盖之前的数据
setex key 过期时间 value创建键值对的同时设置过期时间
getset key value改value时获取其原来的值

③原子性
不会被线程调度机制打断的操作,一旦开始就会一直运行到结束
Redis单命令的原子性得益于Redis的单线程

3)、List

①单键多值
简单的字符串列表(list只能存string),按照插入顺序排序
实质为双向链表,两端操作性能高

②指令

指令功能
lpush/rpush key value1 value2从左/右插入多个值
lpop/rpop key从左/右弹出一个值
rpoplpush key1 key2从key1右边弹出一个值加入到key2左边
lrange key start stop按照索引下标获得元素(从左到右)
lindex key index按照索引下标获得元素(从左到右)
llen key获得列表长度
linsert key before/after value newvalue在value前面/后面插入newvalue
lrem key n value从左边删除n个value(n为正数从左到右,负数从右到左,0表全部删除)

Ps:左边为表头(0开始)、右边为表尾(-1开始)

4)、Set

①自动排重
String类型的无序集合,底层为一个value为null的hash表,即查找复杂度为O(1)

②指令

指令功能
sadd key value1 value2将一个或多个member元素加入到集合key
smembers key取出该集合中所有制
sismember key vcalue判断集合key是否含有该value(1/0)
scard key返回集合中的元素
srem key value1 value2返回该集合的元素个数
srem key value1 value2删除集合中的某个元素
spop key随机从该集合中吐出一个值
srandmember key n随机从集合中取出n个值,不会从集合中删除
sinter key1 key2返回两个集合的交集
sunion key1 key2返回两个集合的并集元素
sdiff key1 key2返回两个集合的差集(key1-key2)元素
5)、hash

①键值对集合
string类型的field和value的映射表,适合存储对象(<String,String>)

②对象存储方式
用户ID—————可将对象序列化存储到redis

用户ID+标签(一般使用冒号进行分隔)——————标签对应数据

③指令

指令功能
hset key field value存储一个key-(field-value)
hget key field从key集合field中取出value
hmset key1 field1 value1 field2 value2批量存储
hexists key field查看hash表是否存在field
hkeys key列出key对应的所有field
hvals key列出key对应的所有value
hgetall key列出key对应的所有field-value
hincrby key field increment为key-field对应的value增加increment
hsetnx key field value为key-field对应的value赋值,当且仅当域field不存在
6)、zset

①无重复元素
每个成员关联一个评分(score,从低到高排序),评分可以重复
添加相同元素不同分数时,会将分数替换掉
添加相同分数不同元素时,排在后面

②指令

指令功能
zadd key score1 value1 score2 value2添加多个元素
zrange key start stop返回下标在start-stop中的元素
zrangebyscore key min max返回score值介于min和max之间
zrevrangebyscore key max min同上,从大到小
zincrby key increment value为元素的score增increment
zrem key value删除该集合下,指定值的元素
zcount key min max统计该集合分数区间内的数
zrank key value返回该值在集合中的排名,从0开始

Jedis来连接Redis

1)、导包

jedis、commons-pool2(连接池)

2)、连接

Jedis jedis = new Jedis(“IP”,6379);
使用String result = jedis.ping()来获取连接状态,返回PONG成功
通过方法来进行操作

3)、以集群的方法操作jedis

new JedisCluster(Set<HostAndPost> nodes>:
nodes中为某一个服务端的IP和PORT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值