java redis数据list_redis数据类型之string,list

redis是干啥的就不多说了,我这里使用windows版的redis,redis是基于内存的,单进程单线程的非关系型数据库,不需要考虑什么线程安全;

想要慢慢的深入redis就要耐下心来从最基本的命令开始慢慢敲一遍,害

1. redis启动脚本

下载完之后目录应该是下图这样的,我们启动一般是redis-server.exe redis.windows.conf启动的,这样可以根据不同配置文件启动的redis服务也是不同的

4e48da8a5c0197bf9430bdd7571472f4.png

便于后期的测试,我们写一个启动的脚本,就把上面那一行命令复制到一个txt文件,然后修改文件后缀为.bat,以后只需要双击这个bat文件就能启动redis服务端,然后点击redis-cli.exe就能连接上了;

2.数据类型

redis中有五种数据类型,分别是zset,set,list,hash和string,其实就是和java中那几种集合差不多

下面我们分别看看这几种数据的用法;

2.1 string

字符串是最常用的数据类型了,操作的命令:

512a402cf295d741a4d04cfb9b17ad55.png

set/get:存放/获取键值对

581177066dd26c50132cc23c783e18c7.png

getset: 首先获取key对应的值,并且覆盖原来的值;

ea41e1e224c7f9e064b717e073a4b1ac.png

mset/mget: 可以一次性保存/获取多个键值对

78a8db1959c891ba1e3d1c2405cfb709.png

strlen: 获取键对应的值得长度

101a39732657b50ce2be13c28fc84098.png

append: 给键对应的值附加字符串,返回的是最终字符串的长度

01617e6daa8484905f0c30f21abc920d.png

getrange:字符串切割

227511ac34c20374a4998165239a1458.png

setex/psetex: 和set命令一样使用,只不过这里可以设置超时时间,时间过了就删除这个键值对,前者单位事秒,后者是毫秒

bbb5435932878a2095c88a6e5c573fac.png

setnx: 这个命令真的很重要!!!redis实现分布式锁就是基于这个命令的,当redis没有指定的key的时候,就存我们传进去的键值对;有指定key就啥也不干

5f3baec7e5f6e537099bcb3a4f699928.png

msetnx: 这是setnx强化版,可以同时设置多个键值对

d2a845726ffb42d6dcdf5602beda5b5c.png

decr/incr: 自减一和自加一,就是i--和i++

1688c27fcd5447ba5da10a140720dcf4.png

decrby/incrby: 上面的命令每次只能减一/加一,这个命令可以指定减数/加数

cd1b7391b86f931635a517a4f07a818b.png

2.2 list

很多个人觉得这个list像java中的List,其实我觉得像java中List>这种类型才对,而且redis中的list可以从头部插入元素lpush,从尾部插入元素rpush

特点:元素有序,可重复

7e4ab3d5809c3cb7d5a01df85c7d4061.png

17f29ca44706c8fa3a910d84f72da853.png

lpush:创建一个list,并每次从头部(或者说左边)向其中添加多个元素,元素可以重复

lrange: 遍历list中所有元素

14bf3f7a5347f00f896b041a06ca42a7.png

rpush: 每次从尾部向list添加元素

487d1bf198c726a811893d6aee5c8d4f.png

lpushx/rpushx: 向list添加元素之前,要保证这个list必须存在,用法和lpush/rpush一样;(这个x是exist的简写)

7b3c33df0c76bd0777b2787f8d79d6d0.png

lpop/rpop: 拿到头部/尾部元素,并删除list中对应的该元素

4203a138ecf641751ddc67882b654e89.png

llen: 获取指定list中元素的数量

d72415cb88a01ac1524f6c93ccfd7588.png

lset: 修改列表中指定位置的值

ff05c39e94d95c9d2f0313901595d587.png

lindex: 获取列表中指定位置的值

e072214b10e5509b18df857d2e9883e3.png

lrem: 删除指定数量的重复元素

04cbd38d629a79c62561b375d34cda0c.png

ltrim:切割一部分的列表为我所用

b814d8738b4d91b19e6ac851b92ed238.png

linsert: 从头到尾匹配到指定元素,在这个元素之前/之后 插入指定元素  ,下面的before是之前,用after是之后

a6f410b29b432130b4a273499eb713d0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值