redis-Windows下安装与操作
?????????? Redis windows下安裝
1.安裝
(1)windows把redisbin_x32安裝包放在電腦任意的盤里
(2)通過(guò)cmd找到對(duì)應(yīng)目錄:? D\redisbin_x32
(3)開始安裝
D\redisbin_x32\redis-server.exe
?
代表的redis安裝成功
(4)開啟redis客戶端
<1>redis服務(wù)必須開啟
<2>找到redis客戶端啟動(dòng)程序雙擊
? D:\redisbin_x64\redis-cli.exe
2.在php下開啟redis擴(kuò)展
<1>將php_redis.dll 擴(kuò)展文件 放在wamp->bin->php->ext 目錄下
?<2>在配置文件里php.ini添加配置選項(xiàng)開啟
?extension=php_redis.dll
?<3>重啟Apache
?
3.redis數(shù)據(jù)類型
Redis包含5種數(shù)據(jù)類型
? string(字符串)、hash(哈希表) list(雙向鏈表)、set(集合)和zset(有序集合)
? (1)字符串 string:和我們平時(shí)研究的字符串定義一樣 key value(必須是字符串)? name? ssss
?? 命令:
??? set命令:設(shè)置一個(gè)鍵和值,鍵存在則只覆蓋,返回ok
?? > set 鍵? 值??? 例如: >set name zhangsan
?
?? get命令:獲取一個(gè)鍵的值,返回值
?? > get 鍵 ??????例如:>get name
?
?? setnx命令:設(shè)置一個(gè)不存在的鍵和值(防止覆蓋),
?? > setnx 鍵值? ?????? 若鍵已存在則返回0表示失敗
?
?? setex命令:設(shè)置一個(gè)指定有效期的鍵和值(單位秒)
?? > setex 鍵 [有效時(shí)間] 值? 例如: >setex color 10 red
??? 不寫有效時(shí)間則表示永久有效,等價(jià)于set
?
?? setrange命令:替換子字符串 (替換長(zhǎng)度由子子串長(zhǎng)度決定)
?? > setrange 鍵位置(從0開始) 子字串?
?? > setrange name 4 aa? 將name鍵對(duì)應(yīng)值的第4個(gè)位置開始替換
?
?? mset命令:批量設(shè)置鍵和值,成功則返回ok
?? > mset 鍵1 值1 鍵2 值2 鍵3 值3 ....
??
?? msetnx命令:批量設(shè)置不存在的鍵和值,成功則返回ok
?? > msetnx 鍵1 值1 鍵2 值2 鍵3 值3 ....
??
?? getset命令:獲取原值,并設(shè)置新值
?? >getset 鍵名新的值
?? getrange命令:獲取指定范圍的值
?? >getrange 鍵 0 4???? //獲取指定0到4位置上的值
?
?? mget命令:批量獲取值
?? >mget 鍵1 鍵2 鍵3....
??
?? incr命令:指定鍵的值做加加操作,返回加后的結(jié)果。
?? >? 鍵??????? 例如: >incr kid
?? incrby命令:設(shè)置某個(gè)鍵加上指定值
?? > incrby 鍵 m??? //其中m可以是正整數(shù)或負(fù)整數(shù)
?
?? decr命令:指定鍵的值做減減操作,返回減后的結(jié)果。
?? > decr 鍵??????? 例如: >decr kid
?? decrby命令:設(shè)置某個(gè)鍵減上指定值
?? > decrby 鍵 m??? //其中m可以是正整數(shù)或負(fù)整數(shù)
?
?? append命令:給指定key的字符串追加value,返回新字符串值的長(zhǎng)度
?? >append 鍵追加字串
?
?? strlen求長(zhǎng)度 >strlen 鍵名 ??//返回對(duì)應(yīng)的值。
(2)哈希類型(hash)
????? Redis hash 是一個(gè)string類型的field和value的映射表,hash特別適合用于存儲(chǔ)對(duì)象。
????? Redis 中每個(gè) hash 可以存儲(chǔ) 232 - 1 鍵值對(duì)(40多億)。
????? Hash表也稱散列表,也有直接譯作哈希表,Hash表是一種特殊的數(shù)據(jù)結(jié)構(gòu),它能夠快速定位到想要查找的記錄,根據(jù)哈希的表名,直接定位
????? 結(jié)構(gòu)如下:
?????
? 命令:
?hset命令:設(shè)置一個(gè)哈希表的鍵和值
? >hset hash名(hash表名) 鍵? 值
? 如:>hset user:001 name zhangsan
?
? hsetnx命令:設(shè)置一個(gè)哈希表中不存在的鍵和值
? >hsetnx hash名 鍵? 值? //成功返回1,失敗返回0
? 如:>hsetnx user:001 name zhangsan
?
? hmset命令:批量設(shè)置
?? -》hmset user:001 鍵1 值1?? 鍵2?? 值2
? hmget命令? 批量獲取
? hget命令: 獲取執(zhí)行哈希名中的鍵對(duì)應(yīng)值
?? hget user:001 name
>hexists user:001 name //是否存在, 若存在返回1
?
>hlen user:001? //獲取某哈希user001名中鍵的數(shù)量
?
>hdel user:001 name //刪除哈希user:001 中name鍵
->del user:001 //刪除當(dāng)前hash表數(shù)據(jù)
?
>hkeys user:002?? //返回哈希名為user:002中的所有鍵。
>hvals user:002?? //返回哈希名為user:002中的所有值。
>hgetall user:002 //返回哈希名為user:002中的所有鍵和值。
(3)鏈表(lists)
????? 在Redis中,List類型是按照插入順序排序的字符串鏈表。和數(shù)據(jù)結(jié)構(gòu)中的普通鏈表一樣,
我們可以在其頭部(left)和尾部(right)添加新的元素。在插入時(shí),如果該鍵并不存在,
Redis將為該鍵創(chuàng)建一個(gè)新的鏈表。與此相反,如果鏈表中所有的元素均被移除,那么該鍵也將會(huì)被從數(shù)據(jù)庫(kù)中刪除。
List中可以包含的最大元素?cái)?shù)量是4294967952。
?
?從元素插入和刪除的效率視角來(lái)看,如果我們是在鏈表的兩頭插入或刪除元素,這將會(huì)是非常高效的操作,
即使鏈表中已經(jīng)存儲(chǔ)了百萬(wàn)條記錄,該操作也可以在常量時(shí)間內(nèi)完成。然而需要說(shuō)明的是,
如果元素插入或刪除操作是作用于鏈表中間,那將會(huì)是非常低效的。
?
?
?
命令:
>lpush list1 "world"? //在list1頭部壓入一個(gè)字串
?>lpush list1 "hello"? // 在list1頭部壓入一個(gè)字串
?>lrange list1 0 -1? //獲取list1中內(nèi)容
?????? 0:表示開頭? -1表示結(jié)尾。
??????
?>rpush list2 "world"? //在list2尾部壓入一個(gè)字串
?>rpush list2 "hello"? // 在list2尾部壓入一個(gè)字串
?>lrange list2 0 -1? //獲取list2中內(nèi)容
?????? 0:表示開頭? -1表示結(jié)尾。
??????
?>linsert list2 before "hello" "there"
?在key對(duì)應(yīng)list的特定位置前或后添加字符串
?
?>lset list2 1 "four"
?修改指定索引位置上的值
?
?>lrem list2 2 "hello"? //刪除前兩個(gè)hello值
?>lrem list2 -2 "hello" //刪除后兩個(gè)hello值
?>lrem list2 0 "hello"? //刪除所有hello值
?
?>ltrim mylist8 1 -1???? //刪除此范圍外的值
?
?>lpop list2?? //從list2的頭部刪除元素,并返回刪除元素
?>rpop list2?? //從list2的尾部刪除元素,并返回刪除元素
?>rpoplpush list1 list2?????? //將list1的尾部一個(gè)元素移出到list2頭部。并返回
?
?>lindex list2 1 //返回list2中索引位置上的元素
?>llen list2 //返回list2上長(zhǎng)度
?
?
(4)set(集合)和zset(有序集合)
???? 在Redis中,我們可以將Set類型看作為沒(méi)有排序的字符集合,
和List類型一樣,我們也可以在該類型的數(shù)據(jù)值上執(zhí)行添加、刪除或判斷某一元素是否存在等操作
???? zset是在set的基礎(chǔ)上增加了順序,形成一個(gè)有序的集合
?
?? 如圖所示:
???
?
命令:
?>sadd myset "hello" //向myset中添加一個(gè)元素
? 成功返回1,失敗(重復(fù))返回0
?
?>smembers myset //獲取myset中的所有元素
?
?>srem myset "one" //從myset中刪除一個(gè)one
? 成功返回1,失敗(不存在)返回0
?
?>spop myset //隨機(jī)返回并刪除myset中的一個(gè)元素
?
?>sdiff myset1 myset2 //返回兩個(gè)集合的差集
?以myset1為標(biāo)準(zhǔn),獲取myset2中不存在的。
?
?其他Redis常用命令
?=============================
?1. 鍵值相關(guān)命令
?>keys *? //返回鍵(key)
?>keys list*?? //返回名以list開頭的所有鍵(key)
?>exists list1? //判斷鍵名為list1的是否存在
??????? 存在返回1, 不存在返回0
?>del list1 //刪除一個(gè)鍵(名為list1)
?
?>expire list1 10 //設(shè)置鍵名為list1的過(guò)期時(shí)間為10秒后
?>ttl list1 //查看鍵名為list1的過(guò)期時(shí)間,若為-1表示以過(guò)期
轉(zhuǎn)載于:https://www.cnblogs.com/LF-place/p/10556648.html
總結(jié)
以上是生活随笔為你收集整理的redis-Windows下安装与操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: npm knowledge basics
- 下一篇: 第三方支付账务系统设计难点 16