• [Database] Redis (1)


      Redis 是一个高性能的key-value内存数据库。 这不仅性能强劲,而且还具有复制、持久化、分片特性。 它支持存储的value类型包括STRING(字符串)、LIST(链表)、SET(集合)、HASH(散列)、ZSET(有序集合)等。redis还支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

    我们用 Python 来联接操作试试

    Python联接代码

    代码
    abeen@localhost:~/mytest$ cat my_redis.py
    #! /usr/bin/env python
    #
    _*_ coding:utf-8 _*_

    import redis

    # Redis 操作调用
    class My_Redis:

    # 初始化配置信息
    def__init__(self):
    self.r
    = redis.Redis(host='192.168.1.3', port=6379, db=0)

    def GetInstance(self):
    return self.r

    def Set(self, object_name, object):
    self.r.set(object_name, object)

    def Get(self, object_name):
    return self.r.get(object_name)

    导入

    In [1]: ls
    my_redis.py
    * my_redis.pyc mytest.py*
    In [
    2]: from my_redis import My_Redis
    In [
    3]: r = My_Redis().GetInstance()

    字符串操作

    代码
    In [4]: r.set('strName','shan shan') //保存字符串
    Out[
    4]: True
    In [
    5]: r.get('strName') //取字符串
    Out[
    5]: 'shan shan'

    In [
    7]: r.exists('strName') //检查是否存在
    Out[
    7]: True

    In [
    8]: r.type('strName') //查看类型
    Out[
    8]: 'string'

    In [
    9]: r.keys() //查看所有keys
    Out[
    9]:['book', 'list', 'set1', 'id', 'list2', 'o', '', 'name', 'a', 'kv', 'b', 's', 'c', 'shanshan', 'strName']

    In [
    10]: r.rename('strName','strNewName')//修改键名
    Out[
    10]: True
    In [
    12]: r.keys()
    Out[
    12]:['book', 'list', 'set1', 'id', 'list2', 'o', '', 'name', 'a', 'kv', 'b', 's', 'c', 'strNewName', 'shanshan']
    In [
    13]: r.get('strNewName')
    Out[
    13]: 'shan shan'

    In [
    14]: r.dbsize()//总键数
    Out[
    14]: 15

    In [
    15]: r.set('abeen','yeah my am abeen')
    Out[
    15]: True
    In [
    16]: r.mget(['strNewName','abeen']) //一次取多个键值
    Out[
    16]: ['shan shan', 'yeah my am abeen']

    In [
    17]: r.getset('abeen','abeen new message')//替换值
    Out[
    17]: 'yeah my am abeen'
    In [
    18]: r.get('abeen')
    Out[
    18]: 'abeen new message'

    列表操作

    代码
    In [5]: r.lpush('listAB','shan shan') //加入值
    Out[
    5]: True
    In [
    6]: r.lpush('listAB','shan shan')
    Out[
    6]: True
    In [
    7]: r.lpush('listAB','shan shan')
    Out[
    7]: True
    In [
    11]: r.lrange('listAB', 0, r.llen('listAB'))//显示
    Out[
    11]: ['shan shan', 'shan shan', 'shan shan']

    In [
    12]: r.lset('listAB', 0, 'abeen') //修改0索引值
    Out[
    12]: True
    In [
    13]: r.lset('listAB',1, 'qiqi')//修改1索引值
    Out[
    13]: True
    In [
    14]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    14]: ['abeen', 'qiqi', 'shan shan']

    In [
    15]: r.rpush('listAB','abeen1') //头部插入值
    Out[
    15]: True
    In [
    16]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    16]: ['abeen', 'qiqi', 'shan shan', 'abeen1']
    In [
    17]: r.lpush('listAB','abeen2') //尾部插入值
    Out[
    17]: True
    In [
    18]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    18]: ['abeen2', 'abeen', 'qiqi', 'shan shan', 'abeen1']

    In [
    19]: r.ltrim('listAB',0,1) //消减值
    Out[
    19]: True
    In [
    20]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    20]: ['abeen2', 'abeen']

    In [
    22]: r.lpop('listAB') //尾部移除值
    Out[
    22]: 'abeen2'
    In [
    23]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    23]: ['abeen']

    --------------------------------------------------------

    更多相关操作和信息请参考

    Redis

    http://code.google.com/p/redis/wiki/CommandReference

    API Reference

    redis-cheatsheet-v1.pdf

  • 相关阅读:
    PHP概率算法---砸金蛋示例
    onethink----网站配置信息调用!
    ajax解决跨域方法(适用于自己写接口解决跨域)
    JavaScript获取地址栏的参数!
    Atitit. null错误的设计 使用Optional来处理null
    Atitit.常用的gc算法
    Atitit.java expression fsm 表达式分词fsm引擎
    Atitit.安全性方案规划设计4gm  v1 q928
    Atitit.安全性方案规划设计4gm  v1 q928
    Atitit.java expression fsm 表达式分词fsm引擎
  • 原文地址:https://www.cnblogs.com/abeen/p/1773087.html
Copyright © 2020-2023  润新知