目錄
1. redis數據類型
redis支持五種數據類型:String,hash,list,set,zset(有序集合)
1.0. redis對KEY操作的命令
exists(key):確認一個key是否存在
del(key):刪除一個key
type(key):返回值的類型
keys(pattern):返回滿足給定pattern的所有key
randomkey:隨機返回key空間的一個
keyrename(oldname, newname):重命名key
dbsize:返回當前數據庫中key的數目
expire:設定一個key的過期時間,可用來修改key的過期時間
ttl:獲得一個key的活動時間
move(key, dbindex):移動當前數據庫中的key到dbindex數據庫
flushdb:刪除當前選擇數據庫中的所有key
flushall:刪除所有數據庫中的所有key
1.1 String類型
String類型是redis最基礎的數據類型,以key-value形式存儲,它是二進制安全的,可以包含任何數據類型,一個鍵最大能存儲512MB,通過get key命令來獲取value,set key value來保存數據。
常用命令
set(key, value):給數據庫中名稱爲key的string賦予值value
get(key):返回數據庫中名稱爲key的string的value
getset(key, value):給名稱爲key的string賦予上一次的value
mget(key1, key2,…, key N):返回庫中多個string的value
setnx(key, value):添加string,名稱爲key,值爲value
setex(key, time, value):向庫中添加string,設定過期時間time
mset(key N, value N):批量設置多個string的值
msetnx(key N, value N):如果所有名稱爲key i的string都不存在
incr(key):名稱爲key的string增1操作
incrby(key, integer):名稱爲key的string增加integer
decr(key):名稱爲key的string減1操作
decrby(key, integer):名稱爲key的string減少integer
append(key, value):名稱爲key的string的值附加value
substr(key, start, end):返回名稱爲key的string的value的子串
2.2 Hash類型
hash類型是一個String類型的field和value的映射表,hget key field獲取數據,hmset key field value,保存數據,可以一次保存多個數據:hmset key field1 value1 field2 value2。
hset 一次設置一個值,hmset 可設置多個值,del刪除所有的key所有的field,hdel key field,刪除指定的field。hgetall key,或者key所有field的值。
常用命令
hset(key, field, value):向名稱爲key的hash中添加元素field
hget(key, field):返回名稱爲key的hash中field對應的value
hmget(key, (fields)):返回名稱爲key的hash中field i對應的value
hmset(key, (fields)):向名稱爲key的hash中添加元素field
hincrby(key, field, integer):將名稱爲key的hash中field的value增加integer
hexists(key, field):名稱爲key的hash中是否存在鍵爲field的域
hdel(key, field):刪除名稱爲key的hash中鍵爲field的域
hlen(key):返回名稱爲key的hash中元素個數
hkeys(key):返回名稱爲key的hash中所有鍵
hvals(key):返回名稱爲key的hash中所有鍵對應的value
hgetall(key):返回名稱爲key的hash中所有的鍵(field)及其對應的value
2.3 List類型
list類型是簡單的字符串列表,按照插入的順序。 lpush key value,lrange key 0 10。
常用命令
rpush(key, value):在名稱爲key的list尾添加一個值爲value的元素
lpush(key, value):在名稱爲key的list頭添加一個值爲value的 元素
llen(key):返回名稱爲key的list的長度
lrange(key, start, end):返回名稱爲key的list中start至end之間的元素
ltrim(key, start, end):截取名稱爲key的list
lindex(key, index):返回名稱爲key的list中index位置的元素
lset(key, index, value):給名稱爲key的list中index位置的元素賦值
lrem(key, count, value):刪除count個key的list中值爲value的元素
lpop(key):返回並刪除名稱爲key的list中的首元素
rpop(key):返回並刪除名稱爲key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
brpop(key1, key2,… key N, timeout):rpop的block版本。
rpoplpush(srckey, dstkey):返回並刪除名稱爲srckey的list的尾元素,並將該元素添加到名稱爲dstkey的list的頭部
2.4 Set類型
set類型是String類型的無序集合,通過hash表實現。sadd key value,成功返回1,如果value已存在,返回0,key 不存在,返回錯誤。smembers key獲取key表中的數據。
常用命令
sadd(key, member):向名稱爲key的set中添加元素member
srem(key, member) :刪除名稱爲key的set中的元素member
spop(key) :隨機返回並刪除名稱爲key的set中一個元素
smove(srckey, dstkey, member) :移到集合元素
scard(key) :返回名稱爲key的set的基數
sismember(key, member) :member是否是名稱爲key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, (keys)) :求交集並將交集保存到dstkey的集合
sunion(key1, (keys)) :求並集
sunionstore(dstkey, (keys)) :求並集並將並集保存到dstkey的集合
sdiff(key1, (keys)) :求差集
sdiffstore(dstkey, (keys)) :求差集並將差集保存到dstkey的集合
smembers(key) :返回名稱爲key的set的所有元素
srandmember(key) :隨機返回名稱爲key的set的一個元素
2.5 Zset類型
zset類型是String類型的有序集合,不同的每個元素關聯一個double類型的分數,通過該分數來爲集合中的成員進行從小到大排序,分數可以重複。 zadd key score value新增數據,zrange key 0 100 (withscores)獲取數據。
2. java使用jedis
2.1.引入jedis依賴
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2.2.使用本地redis服務
啓動 redis-server
創建redis鏈接:Jedis jedis = new Jedis("localhost");
測試鏈接: jedis.ping(),輸出PONG,鏈接成功。
2.3. 基本類型常用api
2.3.1 String類型:
jedis.set(key, value):保存
jedis.get(key):獲取
jedis.incr(key):key對應的value可以轉爲數字,加一
jedis.decr(key):key對應的value可以轉爲數字,減一
jedis.incrBy(key, number):key對應的value可以轉爲數字,加number
jedis.decrBy(key, number):key對應的value可以轉爲數字,減number
2.3.2 list類型:
jedis.lpush(key, value):保存
jedis.lrange(key, 0,10):獲取,返回List類型
2.3.3 hash類型:
jedis.hset(key, field, value):保存
jedis.hmset(key, Map<K, V> map):保存
jedis.hget(key, field):獲取value
jedis.hmget(key, field1, field2, ...):獲取多個,返回List
jedis.hkeys(key):獲取key的所有fields,返回set
jedis.hgetAll(key):獲取key的所有fields和values,返回Map
2.3.4 set類型:
jedis.sadd(key, value):保存
jedis.smembers(key):獲取,返回set
2.3.5 zset類型:
Map<String, Doube> map;
jedis.zadd(key, map):保存
jedis.zrange(key, 0, 10):獲取,返回set