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