日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis小结

發布時間:2025/7/14 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Redis

簡介

1.一個通過 內存 存取數據的key-value數據庫

2.常用的是它的鏈表與集合的數據結構

3.當然除了redis,我們平時的應用離不開它與Mysql的結合,

先存入mysql再存入redis

主要功能

用來提速,因為內存讀取比硬盤讀取 速度要快很多

字符串 string

特點:簡潔,常用于存用戶信息
常用操作方法

key-value數據庫設計

常用方式,類比Mysql數據庫設計,表名>字段名>字段值

示例一:user表,里面的字段有username,uid,password 帶有$表示php中的變量 先定一個自增變量 $uid=$r->incr("uid"); Key Value 備注 user:uid:$uid:username $username 根據用戶uid查名字 user:uid:$uid:password $password 根據用戶uid查密碼 user:$username $uid 根據用戶名查密碼場景:已知用戶名$username,密碼$password,查帳號密碼是否正確 步驟一, $uid=$r->get("user:$username"); 步驟二:其中*表示匹配任意多個字符 $find_key = $r->keys("user:uid:$uid*"); if(empty($find_key)){echo "帳號或者密碼錯誤";//帳號不存在 }else{ $nameMix="user:".$uid.":username"; $pwdMix= "user:".$uid.":pwd" ; $get_user_info=array($nameMix,$pwdMix ); $find=$r->mget($get_user_info); if($name == $find[0] && $pwd == $find[1]){echo "歡迎您,$username!"; }else{echo "帳號或者密碼錯誤"; }

鏈表 list

特點:常用來做消息推送

這里的消息推送是指,判斷是否發送成功,系統成功接收到消息,就返回確認信息給發送端 然后就把推送的過程留給服務器,在后臺進行。[推送可以用到優先級,關注越早(可以通過zsort實現),越優先]

常用隊列解決優先級的問題,例如

lpush可以形成一個從左往右的隊列 rpush可以使得一個新的數據插入隊列的頂部,用于解決進程優先級的問題

注意:隊列一般不給予定點刪除功能,比如新浪微博,你取消關注后,它依然

集合 set

特點:交集、并集、差集、不重復,可以通過sort排序

1)粉絲粉主關系 2)防止事件重復

哈希 hash

特點:類似于二維數組的存取

排序集 zset

特點:排序方便,如果熟練set方法的排序,這個就不用研究了

常用操作

目前我做了一個小案列關于具體操作的,微博邏輯大概就是這個樣子
鏈接:http://pan.baidu.com/s/1slMSrqH 密碼:9u5b

更新時間 2016年8月2日 23:48:06
這里講php中常用方法
初始的時候定義靜態變量 $r $r = new Redis(); $r->connect("127.0.0.1",“6379”); //如果有密碼 //$r->auth("密碼"); $r->select(1);

如果是查詢的string型,模糊查找user:uid:uiduser:uid:uid:age的各自年齡

$find_array=$r->keys("user:uid:*"); $count=count($find_array);//找到到的個數 for($i=0 ; $i < $count ; $i++){$keyMix[$i]="user:uid:$find_array[$i]:age"; } $result_array=$r->mget($find_array); print_r($result_array);

其他類型的常用嘗試

Redis的AOF

進入redis的安裝后的配置文件redis.conf

vim /usr/local/redis/etc/redis.conf
0)設置AOF類型,這里設置精準持久化(每次數據變更都會自動備份,當數據量大的時候換類型)
appendfsync everysec
1)你應該會看到
save 900 1 save 300 10 save 60 10000

比如,第一行,表示900秒內,如果超過1個key被修改,就發起快照保存

后兩行同理,這三行表示三種方案,不同情況不同處理

2)你應該會看到

備份的數據名稱

dbfilename dump.rdb

備份數據的路徑

dir /usr/local/redis/var
3)如果你是在本地輸入的數據,想將dump.rdb文件弄到服務器上

此間要求:本地的redis版本,不能高于服務器版本的redis,否則dump.rdb不能被讀取

主從配置

為了防止意外發生,請各個服務器統一redis版本!!!

1) 開放服務器對應的redis端口
iptables -A INPUT -p tcp --dport 6379 -j ACCEPT service iptables save
2) 進入redis的安裝后的配置文件redis.conf
vim /usr/local/redis/etc/redis.conf
3) 找到# requirepass foobared這行下面添加密碼,比如設為hlz
# requirepass foobared# 配置該服務器密碼requirepass hlz
4) 配置主服務器(master)
主服務器(115.159.56.128:6379)
  • 配置步驟3)中的密碼

  • 設置slave權限:一般情況=>從服務器=>只讀,不可寫

    slave-read-only yes

  • 從服務器
  • 在redis.conf中,找到

    # slaveof <masterip> <masterport> # 示例如下,填寫對應的主服務器的ip與端口 slaveof 115.159.56.128 6379
  • 再在redis.conf中,找到
    # masterauth
    # 輸入主服務器的密碼
    masterauth hlz
    現在就完成主從配置了。
  • 關于主從配置的分布式使用,我們可以用一致哈希算法
    http://blog.csdn.net/cywosp/article/details/23397179/

    待更新

    解決跨域請求

    待有空時,再更新

    后續:建議相關

    我建議在windows下,因為編譯器更強大,

    Windows下安裝redis環境講解 http://blog.csdn.net/myboyli/article/details/52082050 Linux下安裝redis環境講解待更新 php操作redis的函數總結 http://blog.csdn.net/myboyli/article/details/52090452

    總結

    以上是生活随笔為你收集整理的Redis小结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。