redis是干啥的就不多說了,我這里使用windows版的redis,redis是基於內存的,單進程單線程的非關系型數據庫,不需要考慮什么線程安全;
想要慢慢的深入redis就要耐下心來從最基本的命令開始慢慢敲一遍,害
1. redis啟動腳本
下載完之后目錄應該是下圖這樣的,我們啟動一般是redis-server.exe redis.windows.conf啟動的,這樣可以根據不同配置文件啟動的redis服務也是不同的

便於后期的測試,我們寫一個啟動的腳本,就把上面那一行命令復制到一個txt文件,然后修改文件后綴為.bat,以后只需要雙擊這個bat文件就能啟動redis服務端,然后點擊redis-cli.exe就能連接上了;
2.數據類型
redis中有五種數據類型,分別是zset,set,list,hash和string,其實就是和java中那幾種集合差不多
下面我們分別看看這幾種數據的用法;
2.1 string
字符串是最常用的數據類型了,操作的命令:

set/get:存放/獲取鍵值對

getset: 首先獲取key對應的值,並且覆蓋原來的值;

mset/mget: 可以一次性保存/獲取多個鍵值對

strlen: 獲取鍵對應的值得長度

append: 給鍵對應的值附加字符串,返回的是最終字符串的長度

getrange:字符串切割

setex/psetex: 和set命令一樣使用,只不過這里可以設置超時時間,時間過了就刪除這個鍵值對,前者單位事秒,后者是毫秒

setnx: 這個命令真的很重要!!!redis實現分布式鎖就是基於這個命令的,當redis沒有指定的key的時候,就存我們傳進去的鍵值對;有指定key就啥也不干

msetnx: 這是setnx強化版,可以同時設置多個鍵值對

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

decrby/incrby: 上面的命令每次只能減一/加一,這個命令可以指定減數/加數

2.2 list
很多個人覺得這個list像java中的List<T>,其實我覺得像java中List<List<T>>這種類型才對,而且redis中的list可以從頭部插入元素lpush,從尾部插入元素rpush
特點:元素有序,可重復


lpush:創建一個list,並每次從頭部(或者說左邊)向其中添加多個元素,元素可以重復
lrange: 遍歷list中所有元素

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

lpushx/rpushx: 向list添加元素之前,要保證這個list必須存在,用法和lpush/rpush一樣;(這個x是exist的簡寫)

lpop/rpop: 拿到頭部/尾部元素,並刪除list中對應的該元素

llen: 獲取指定list中元素的數量

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

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

lrem: 刪除指定數量的重復元素

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

linsert: 從頭到尾匹配到指定元素,在這個元素之前/之后 插入指定元素 ,下面的before是之前,用after是之后

